【问题标题】:Jquery ajax long polling error on FirefoxFirefox 上的 Jquery ajax 长轮询错误
【发布时间】:2012-02-19 07:38:55
【问题描述】:

这是我的代码。它与 Chrome 完美配合,但当我启动它 Firefox 时,它只在第一次调用时工作。当我第二次尝试传递数据时,出现此错误:
尝试在已清除的范围内运行 compile-and-go 脚本”。
我想问题出在“成功”参数中的函数调用中,但我不明白出了什么问题。
提前感谢您的帮助。

$.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
        });  
    }

【问题讨论】:

  • 这可能是 Firebug 的问题;你能在禁用 Firebug 并清除缓存的情况下试试吗?

标签: jquery ajax long-polling


【解决方案1】:

这是一个 FF 特定的错误,很可能是由于缓存而发生的,您可以尝试在 head 标签内添加这样的元数据

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

更多信息请见http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/10ff69b04b88e06f/87f89aaec17c1aed

【讨论】:

  • 我在这个脚本上有另一个问题。我还以为是前一个原因造成的。之后,它从 php 脚本中检索数据,它停止并且不进行以下调用。你有什么建议吗?谢谢
  • 请原谅我的英语不好,我的意思是“下一个”而不是“跟随”。我的意思是在同一个函数从服务器检索数据之后调用函数“in_call()”。只是为了拥有类似于推送技术的东西。谢谢
  • 我不确定,但您可以尝试在您的 ajax 调用 async:false 中添加它。
  • 嗨赫拉!你很棒!它完美地工作。非常感谢!
【解决方案2】:

经过长时间的头痛,我终于找到了答案。 Heera 和 Melee 给出的提示很有帮助,但根本没有解决问题。 实际上我的脚本是正确的。
问题是函数内部的“document.write()”进入参数“success”(.... OUTPUT DATA RETRIEVED....),它是我发布的脚本中没有提到。
我不知道为什么,但似乎“成功”中的“document.write()”仅适用于 Chrome。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2014-05-27
    相关资源
    最近更新 更多