我花了一段时间试图找出这一个。我确信有合适经历的人将能够看到问题,但我不明白为什么它不一致。AJAX不一致工作
基本上,这一切确实是打两个电话。它在页面加载时获得一个数字。然后,当用户提交表单时,它会进行第二个调用,它告诉我的PHP文件只将当前总提交数加1。
它工作的大部分时间,它甚至似乎是我在IE7和IE8的工作(在某种程度上 - 它似乎在某种程度上缓存数量,因此你只能告诉它已经从一个不同的浏览器更新)。
编辑:我只使用IE9的开发人员工具测试IE7和IE8,还没有尝试过自己的实际安装。
$(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>");
}
出于某种原因,我的意见是不显示up ... 编辑:好的,那一个。以下是我想说的: 我修复了缓存问题。这可能会影响第二次电话吗? PHP只查看发送的'myaction'的值,如果它是'addcount',它会查看表单提交的当前值并将其增加1。第一次后,缓存是否会阻止它发生有人填写表格,如果他们想再填写一遍? – user1020189 2012-04-12 16:42:40
如果你正在更新服务器的状态,你应该做一个POST而不是GET。 – epascarello 2012-04-12 16:54:11
它也收到这个数字回来更新它在当前页面(虽然我想我可以用JS做到这一点) – user1020189 2012-04-12 16:58:19