2012-02-19 91 views
1

这是我的代码。它与Chrome完美兼容,但是当我启动Firefox时,它只能在第一次通话时使用。当我尝试第二次传递数据时,出现以下错误:
尝试在已清除的范围上运行”编译并运行脚本“。
我想问题是在“成功”参数的函数调用中,但我不明白什么是错的。
预先感谢您的帮助。Firefox上的jquery ajax长查询错误

$.noConflict(); 
jQuery(document).ready(function(){ 
in_poll(); 
}); 

function in_poll() 
    { 
    jQuery.ajax(
     { 
     url: "prova.php", 
     cache: false, 
     dataType: "json", 
     success: function(data) 
      { 
      .... OUTPUT DATA RETRIEVED.... 
      in_poll(); 
      },   
     error: function (xhr, ajaxOptions, thrownError) 
      {   
      alert(thrownError); 
      setTimeout('in_poll()', 5000);//Try againg after 5 seconds 
      }, 
     timeout: 25000 
     }); 
    } 
+0

这可能是Firebug的一个问题;你可以尝试与Firebug禁用和缓存清除? – Nic 2012-02-19 08:08:23

回答

2

这是一个FF特定的错误,最有可能是由于缓存,你可以尝试添加像这里面的head标签

<meta http-equiv="cache-control" content="no-cache" /> 

元欲了解更多看到http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/10ff69b04b88e06f/87f89aaec17c1aed

+0

你也可以检查这个http://stackoverflow.com/questions/5433415/error-attempt-to-run-compile-and-go-script-on-a-cleared-scope – 2012-02-19 08:39:42

+0

谢谢你的回答。有用!! – Arnaldo 2012-02-19 10:13:21

+0

不客气。 – 2012-02-19 10:14:33

0

最后我经过长时间的头痛后找到了答案。 Heera和Melee给出的提示很有帮助,但根本没有解决问题。 实际上我的脚本是正确的。
问题是一个“document.write()的”功能到未在我张贴的scritp提到的参数“成功”(.... OUTPUT DATA检索....)和内部。
我不知道为什么,但似乎“成功”内的“document.write()”只适用于Chrome。