2017-02-16 52 views
0

我有这样的jQuery脚本定期更新只发生一次

<script> 
(function worker() { 
    $.ajax({ 
    dataType: 'json', 
    url: '/course.json', 
    success: function(data) { 
     $('#current').text(data); 
    }, 
    complete: function() { 
     // Schedule the next request when the current one's complete 
     setTimeout(worker, 1000); 
    } 
    }); 
})(); 
</script> 

这只有一次。一次更新后,即使Ajax响应发生变化,#current的值也不会改变。

如果这个问题是关系到改变DOM属性,我不知道我如何使用.delegate这里有像click没有实际事件等

+0

@FarzinKanzi是的,'$ .ajax'有一个'complete'回调。 – Hamms

+0

@Hamms谢谢。 –

+0

请测试:'完整:函数(响应)'和这个:'setTimeout(function(){worker();},1000);' –

回答

1

添加您的成功回调内console.log(data);线检查数据确实发生了变化。也去F12网络选项卡,并检查响应实际上是一个200而不是缓存的(302等)。也许问题是缓存。您必须在您的文件中返回no-cache头文件或添加一个随机获取参数来使缓存失效。

此外,为什么不在成功回调中添加超时?有相同目的的2回调是奇怪的。只是为了确保回调被调用。

+0

我可以看到,在Chrome网络模式下的响应是不同的观看请求结果 –

+0

console.log(数据)的东西。 –

+0

由于某种原因删除完成解决了问题 –