我只有一个页面,有时需要异步检查服务器,以查看页面的状态是否为当前状态(基本上是实时或离线)。您将看到我有一个带有var
live的函数,该函数在页面最初加载时设置。然后,我向服务器发出ajax请求以检索live状态是true还是false。我将初始活动变量与新返回的数据json对象进行了比较。如果它们相同,则不执行任何操作,但是如果存在差异,则应用某些CSS类。我使用setTimeout递归运行它(是否有更好的方法来递归执行此操作?)。
我的问题:data.live从它的初始运行开始就没有变化,即使它在db中已更改。我知道我的MySQL正在工作,因为它会在初始负载时恢复正确的值。似乎是一个缓存问题。
任何帮助是极大的赞赏。
function checkLive() {
var live = <?=$result["live"]?>;
$.ajax({
type: 'get',
url: '/live/live.php',
dataType: 'json',
success: function(data) {
console.log('checking for updates... current:' + data.live);
if (data.live == live) {
return;
} else {
var elems = $('div.player_meta, object, h3.offline_message');
if (data.live == '1') {
elems.removeClass('offline').addClass('live');
} else {
elems.addClass('live').addClass('offline');
}
}
}
});
setTimeout(function() { checkLive() } ,15000);
}
checkLive();
使用cache
选项$.ajax()
将高速缓存中断附加到URL,如下所示:
$.ajax({
type: 'get',
url: '/live/live.php',
dataType: 'json',
cache: false,
//success, etc.
});
如果那不能解决问题,请看萤火虫,看看是否正在发出请求(肯定应该在此之后),如果它 仍然 是旧值,问题出在PHP,而不是JavaScript。
与此问题无关,只是一个提示:如果不需要参数,则可以跳过匿名函数调用,这是:
setTimeout(function() { checkLive() } ,15000);
可以是:
setTimeout(checkLive, 15000);
Serenity 提供一些缓存抽象和实用功能让你更容易地使用本地缓存。 术语 本地(local) 的意思是指在本地内存中缓存项目(因此没有涉及到序列化)。 当你的应用程序在网站群(web farm) 中部署时,本地缓存可能还不够或者有时合适。我们将在 分布式缓存 章节中讨论该场景。
问题内容: 我现在有点泡菜。我正在构建一个将从CGI后端获取数据的网页。我无法控制CGI后端,也无法控制服务器(因此无法控制mod_headers或mod_expires)。同样,由于脚本的参数,我无法向每个请求附加唯一值(例如’&089u0af0d98)。使用XmlHttpRequest对象的请求是AJAX。我尝试设置“ If-Modified-Since”和“ Cache-Control”请求
本文向大家介绍浅析IE针对Ajax请求结果的缓存问题,包括了浅析IE针对Ajax请求结果的缓存问题的使用技巧和注意事项,需要的朋友参考一下 在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几
主要内容:缓存穿透,缓存击穿,缓存雪崩在实际的业务场景中,Redis 一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。 Redis 会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到 MySQL 中去查询了,而是直接获取 Redis 中的缓存数据,从而降低了后端数据库的读取压力。如果说用户查询的数据 Redis 没有,此时用户的查询请求就会转到
我是flutter应用程序开发的初学者。当我在模拟器上运行我的flutter默认项目代码时,我面临这个问题: 在调试模式下在IA仿真器上的AOSP上启动lib\main.dart...运行Gradle任务'assembleDebug'... 失败:生成失败,出现异常。 错误:无法打开设置文件“C:\Users\Administrator\StudioProjects\myapp\android\s
本文向大家介绍Ajax请求如何解决浏览器缓存问题?相关面试题,主要包含被问及Ajax请求如何解决浏览器缓存问题?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。 在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-C