2011-08-29 63 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中遇到資源問題。