Javascript Ajax调用仅在第一次更新页面
我有一个相当简单的计时器,我在一页上设置,然后在另一页上查看倒计时 问题是计时器会第一次更新,但不会再次更新(除非我进行了一次完整的页面刷新,但我希望避免这种情况)。 我在firebug中没有任何错误。 该函数每25秒重新发送一次ajax命令——这是有效的,我看到时间如预期般流逝。 如果我改变时间,我可以像预期的那样从php页面看到结果,但是如果没有实际的页面刷新,计时器本身不会更新。 我没有任何与此页面的交互(它只是一个计时器),所以我无法在单击时更新 你知道我错过了什么吗?我知道这一定很明显Javascript Ajax调用仅在第一次更新页面,javascript,html,ajax,Javascript,Html,Ajax,我有一个相当简单的计时器,我在一页上设置,然后在另一页上查看倒计时 问题是计时器会第一次更新,但不会再次更新(除非我进行了一次完整的页面刷新,但我希望避免这种情况)。 我在firebug中没有任何错误。 该函数每25秒重新发送一次ajax命令——这是有效的,我看到时间如预期般流逝。 如果我改变时间,我可以像预期的那样从php页面看到结果,但是如果没有实际的页面刷新,计时器本身不会更新。 我没有任何与此页面的交互(它只是一个计时器),所以我无法在单击时更新 你知道我错过了什么吗?我知道这一定很明显
$(document).ready(function(){
suitcase();
});
setInterval(suitcase, 25000);
function suitcase() {
$.ajax({
type: 'POST',
url: 'timeRTN.php',
async: false,
cache: false,
data: {
examlength: examlength
},
success: function(examlength) {
$('#pauseResume').countdown({
until: examlength,
format: 'HMS'
})
},
})
};
HTML:
谢谢试试这个:
function Suitcase(){
var countdownExists = false;
...
success: function(examlength) {
if(!countdownExists){
$('#pauseResume').countdown({
until: examlength,
format: 'HMS'
})
countdownExists = true;
}else{
$('#pauseResume').countdown('option',{
until: examlength,
format: 'HMS'
})
此处的文档:
$()。倒计时(选项)
创建倒计时的新实例
$().countdown('option',options)
设置现有实例的选项。倒计时()做什么?@ghommy我猜它会倒计时。不过指针不错。旧IE不支持在对象文本末尾加逗号。不是原因,请尝试在$(document.ready(function(){…})中移动setInterval
代码>。您可能无法创建同一计数器两次。您可能需要终止上一个实例,并用新的倒计时来替换
。感谢您的帮助,我无法让您的代码正常工作(即使添加/调整“选项”也不想更新),但您让我走上了正确的道路。我以为我在寻找更新div的错误,但回到我在页面$(选择器)底部看到的原始文档。倒计时(‘销毁’)我销毁现有文档,然后在下一行重新创建它。可能不是作者所希望的,但它可以工作,不再刷新屏幕
function Suitcase(){
var countdownExists = false;
...
success: function(examlength) {
if(!countdownExists){
$('#pauseResume').countdown({
until: examlength,
format: 'HMS'
})
countdownExists = true;
}else{
$('#pauseResume').countdown('option',{
until: examlength,
format: 'HMS'
})