2011-06-27 222 views
0

我认为我的问题其实很简单,我认为答案隐藏在某些相关问题的某处。但我无法让我的代码工作,所以这里是我的问题:刷新/更新页面javascript

我需要读取非周期性机会的文件,并对其中的数据做非常好的事情。到目前为止,我一直在做这个“本地”(这个文件稍后将在服务器上)并且它工作得很好。只是为了测试数据是否被正确读取,文件上的更改由我完成,我只需在浏览器中按F5即可获得“新页面”。这一切都很好!

事情是,我需要网页重新加载自己只有当文件被改变。所以我读了文件,检查是否更新!= lastupdate重新加载页面。问题是,如果条件是真或假,页面总是重新加载并不重要!不爽!这是我迄今所做的方法之一:

setInterval(function() { 
    $.getJSON('object.json', function(data) { 
     if (data.update != lastUpdate){     
      lastUpdate = data.update; 
      window.location.reload(); 
     } 
    }); 
}, 2000); 

如果文件被更改,然后如果真重载页面后,此功能每2秒检查。但它每2秒重新加载一次,而不是每次更改文件时......有谁能告诉我我做错了什么?

感谢和问候, Julls

回答

0

是否缺少右大括号?

 setInterval(function() { 
      $.getJSON('object.json', function(data) { 
       if (data.update != lastUpdate){     
        lastUpdate = data.update; 
        window.location.reload(); 
       } 
      }); 
     }, 2000); 
+0

感谢您的快速回答,但那不是问题:S我刚刚删除了关于该帖子的一些评论,并随身携带关闭的东西xD ...您有任何其他想法吗? :) – jcaz

+0

如果window.location.reload();然后data.update不能等于lastUpdate。将“data.update!= lastUpdate”替换为“1!= 1”以证明页面不会刷新(如果它们相同),然后在Chrome/safari中使用警报框或javascript控制台或在Firefox中使用firebug查看运行时的data.update和lastUpdate的值。希望这可以帮助。 – Max

+0

嗨,昨天没有看到你的答案对不起。我解决了这个问题。每次页面重新载入lastUpdate时也会刷新,所以lastUpdate = data.update行实际上是无用的!我试着不重新加载页面,而是再次调用读取对象的函数,并实际上对数据做了一些处理。这不起作用,因为不知何故页面失去了它应该有的所有交互。任何想法为什么?或者我可以在文件lastUpdate = update中写入,然后读取这两个东西,如果更新更改,再次写lastupdate = update ...? – jcaz