2011-08-29 112 views
3

我的JavaScript客户端每秒通过JQuery $ .ajax()方法发出一个JSONP请求。 当我认为谷歌浏览器(13.0.782.215米Windows)中的JavaScript控制台,然后单击资源按钮,我可以看到,每一秒钟的项目添加到脚本。 此产品是我JSONP请求的结果,它看起来像这样:如何清理JQuery JSONP请求结果?

jQuery162007347695156931877_1314625724397({"Online": "True"}) 

这些项目只是不断建立;页面保持的时间越长,列表变得越长。我的问题是如何清理这些资源?

我已经看到了很多类似的问题在这里,但大多数涉及到某种与使用JQuery的DOM操作内存泄漏。据我所知,我没有做这些事情。其他问题涉及一些模糊的内存泄漏问题,这些问题似乎并不容易追查。 (例如here)我还没有找到一个令人满意的答案,所以我决定发布它。

我不是在追寻含糊不清的内存泄漏,我只是想知道为什么这些JSONP请求的结果在谷歌浏览器中堆积起来,当然,如何清理它们。

我有一段代码,将重现该问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script type="text/javascript"> 
$(document).ready(function() 
{ 
    $.ajaxSetup({ 
     // url: [edit:] I have removed the link since the question is answered now 
     crossdomain: true, 
     dataType: "jsonp", 
     tiemout: 3000, 
     success: myResult 
    }); 

    function myRequest() 
    { 
    $.ajax(); 
    } 

    function myResult(data, textStatus, jqXHR) 
    { 
    // do nothing 
    } 

    setInterval(myRequest, 1000); 
}); 
    </script> 
    </head> 
    <body> 
    </body> 
</html> 
+1

你不必 –

回答

1

你不能。 Chrome只是在您的网页上显示活动,即显示您网页上发生的事件的历史记录。

jQuery的实施JSONP的可能会为每个调用一个新的脚本。如果您想编写自己的JSONP实现,则可以重复使用相同的脚本标记,这可能会导致Chrome仅列出一次“资源”。无论哪种方式,您都不会在Chrome中遇到资源问题。