AJAX 无法始终如一地工作
AJAX not working consistently
我花了一段时间试图弄清楚这个问题。我相信具有正确经验的人将能够看到问题,但我只是不明白为什么它不能始终如一地工作。
基本上,所有这些所做的只是进行两个调用。当页面加载时,它会得到一个数字。然后,当用户提交表单时,它会进行第二次调用,这告诉我的 PHP 文件只需在当前提交总数中添加 1。
它大部分时间都有效,甚至在 IE7 和 IE8 中似乎对我有用(有点 - 它似乎以某种方式缓存了数字,所以你只能说它是从不同的浏览器更新的)。
编辑:我只使用IE7的开发人员工具测试了IE7和IE9,没有尝试过实际安装它们。
$(document).ready(function() {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
var url = "counter.php?myaction=getcount";
request.open('GET', url, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
updateCounter(request.responseText);
}
};
request.send(null);
});
function doNothing() {};
function addCount() {
var request2 = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
var url2 = "counter.php?myaction=addcount";
request2.open('GET', url2, true);
request2.onreadystatechange = function() {
if (request2.readyState == 4) {
request2.onreadystatechange = doNothing;
updateCounter(request2.responseText);
$('#stcPetitionForm').submit();
}
};
request2.send(null);
}
function updateCounter(numSubmissions) {
$("#myCounter").html("<p>" + numSubmissions + "</p>");
}
GET 请求被缓存。您是否在服务器端没有设置缓存标头?
这是一个有据可查的问题。如何防止浏览器中的 Ajax/javascript 结果缓存?提供了一些您可以尝试的好解决方案。
发生这种情况是因为 GET 请求被缓存了。
如何避免缓存的示例:
-
var d = new Date(); var url2 = "counter.php?myaction=addcount&time=' + d.getTime(); // you'd apply to all your url's not just url2
要演示获取时间,请执行以下操作:
-
function postTime(){ var d = new Date(); console.log(d.getTime()); } setInterval(postTime,1000);
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 角度控制器功能不;在指令内部调用时,似乎无法始终如一地工作
- MYSQL更新没有'我不能始终如一地工作
- createElementNS是否始终如一地离线工作?特别是使用 SVG 命名空间
- 道具处理程序无法始终如一地工作
- AJAX 无法始终如一地工作
- 删除记录并刷新Won't始终如一地工作
- HTML5 的音频标签在 Firefox 中无法始终如一地工作
- Escape()似乎不能始终如一地工作
- drawImage() 不能始终如一地工作