现在我使用此代码在我的网络应用程序中获取随机文本。
$(document).ready(function() {
$("#refresh").click(function(evt) {
$("#content").load("load.php")
evt.preventDefault();
})
})
Load.php正在从数据库中加载随机文本。他们能做些什么来加速这次会议。如果有人也知道如何在没有3G和WiFi的情况下使用webb应用程序会很棒。
答案 0 :(得分:0)
您可以在php代码中添加缓存功能。
加载随机文本时,将其写入/cache/mytext.cache
并将unix时间戳写入/cache/mytext.info
现在,在您的php脚本之上,阅读/cache/mytext.info
并检查它是否太旧,如果是,生成新文本并更新mytext.info的时间戳,否则,以文本形式加载/的内容高速缓存/ mytext.cache
// Fetch the timestamp saved in /cache/mytext.info
$cachedate = file_get_contents('./cache/mytext.info', true);
// If timestamp + _× seconds_ is < of current time
if(($cachedate + 3600) < time()) {
// Fetch your new random text and store into $mytext
// for example: $mytext = getrandomtext();
// Write into /cache/mytext.cache your new random text
$fp = fopen('./cache/mytext.cache', 'w');
fwrite($fp, $mytext);
fclose($fp);
// Update timestamp written into /cache/mytext.info
$fp = fopen('./cache/mytext.info', 'w');
fwrite($fp, time());
fclose($fp);
}
// Your random text is into $mytext
$mytext = file_get_contents('./cache/mytext.cache', true);
// Print it with echo
echo $mytext;
答案 1 :(得分:0)
在浏览器中缓存单个请求并使用jQuery非常有用,并且使用得很少,Deferreds http://api.jquery.com/category/deferred-object/,其中ajax调用是一个实例,以确保它只在内容到达时才加载
$(document).ready(function() {
var nextContent = $.get('/load.php');//preload the result of the first random text request
var clicked = false;
$("#refresh").click(function(evt) {
if (!clicked) { // prevent sending loads of requests if user reclicks impatiently
clicked = true;
nextContent.done(function (response) {
console.log('yay')
$("#content").html(response); // print the text
clicked = false;
nextContent = $.get('/load.php'); //preload the next request
})
}
evt.preventDefault();
});
})