我正在開發一個.NET Web應用程序,我必須使用javascript函數setInterval()執行ajax請求以刷新某些頁面的信息。javascript setInvertal的使用增加了內存消耗CPU
隨着每個ajax請求我收到一個約68 KB的XML響應,我設法通過jQuery在html中進行可視化更改。我將間隔設置爲2000毫秒,但我希望,或者說,我需要將其減少到1000毫秒。
不幸的是,每次請求CPU的內存消耗都會增加,這會引發瀏覽器被阻塞,除非他重新加載頁面,否則用戶將無法使用它。我已經在Firefox,Internet Explorer和Chrome中測試過了,但結果總是一樣的。如果我不做setInvertal(),問題就會消失。
此外,我一直在測試我所有的javascript變量的範圍,但我沒有發現任何錯誤,我想這個Javascript有一個高效的垃圾回收器來清理它們。
我希望我已經解釋清楚了這個問題。有人有一些想法來解決它嗎?
修改時間:我正在使用jQuery框架。我的代碼是:
var tim;
$(document).ready(function() {
tim = window.setInterval("refresh()", 2000);
});
function refresh() {
$.post("procedures.aspx", $("#formID").serializeArray(), function (data) {
if (data != ""){
var xml = $.parseXML(data);
... (read and process xml to do changes in the html)
}
}
}
您可能正面臨一些內存泄漏。請嘗試將問題縮小到導致此行爲的最簡單代碼(歡迎使用jsFiddle)。 – 2012-07-14 18:18:55
瀏覽器模塊來自超時/間隔不像有時認爲的那樣在專用線程上運行的事實。雖然聽起來你顯然有一個潛在的問題,但可能會有一些里程碑的網絡工作人員,這可能會做你所描述的,並真正運行在一個單獨的線程。 – Utkanos 2012-07-14 18:22:32
請發表一個setInterval代碼 – 2012-07-14 18:23:01