我一直在研究一個Windows小工具(意思是「瀏覽器」是Internet Explorer),它查詢指定的子網地址以獲取信息。現在,它有時會以相對較快的速度(大約每5秒)完成一次,並且運行得很好。但是,有時它會陷入就緒狀態1,並會永遠停留在那裏。每當小工具嘗試重新獲取xmlhttprequest函數並從中獲取信息時,它都將保持在狀態1.在打開小工具的多個實例並關閉其中一個實例時,這很容易複製。那時候,那個仍然開着的那個幾乎總是會陷入這種狀態。我覺得這可能與他們訪問同一網站有關,或者它可能與xmlhttprequests在傳輸中止並阻止其他人工作有關。以下是相關的代碼。Javascript:xmlhttprequest隨機卡在Ready狀態1
0
A
回答
1
那麼它看起來像我想出來的。我有一種感覺,這是一個未解決的請求,因爲它只發生在它的實例被關閉時(意味着如果其中一個在與服務器通信時關閉,它將永遠保持通信並且沒有其他人可以訪問服務器)並且情況似乎是這樣。我在多個領域對代碼進行了一些修改,基本上它是什麼時候小工具關閉它確保中止所有的請求。這些請求現在是實例變量(以允許中止它們),但是每次需要時它們仍然是新的。
0
對於那些偶然發現並需要一個具體的代碼示例的人,在這裏你去。
我有同樣的問題,解決方案是重新使用XMLHttpRequest對象,以確保任何先前的請求在啓動一個新的請求之前被取消。如果你想有多個AJAX請求,但在我的情況下觸發一個新的請求意味着不再需要最後一個請求,這將不起作用。
我的頁面上的所有請求都是通過看起來像這樣的XMLHttpRequest包裝器方法進行的;
//Declare the XMLHttpRequest object to be re-used
var global_xHttpRequest = null;
function xmlHttpHandler(type, params, complete, postData) {
//Prevents an issue where previous requests get stuck and new ones then fail
if (global_xHttpRequest == null) {
global_xHttpRequest = new XMLHttpRequest();
} else {
global_xHttpRequest.abort();
}
//Parse out current URL
var baseURL = window.location.host;
var svc = "https://" + baseURL + "/processAction?";
var url = svc + params;
global_xHttpRequest.open(type, url, true);
//Add the callback
global_xHttpRequest.onreadystatechange = complete;
global_xHttpRequest.send(postData);
}
這可以這樣使用:
xmlHttpHandler("GET", params, completeFnc);
相關問題
- 1. 隨機:狀態不夠(1字節);忽略
- 2. AJAX就緒狀態卡住了1
- 3. Python - 隨機卡
- 4. Scikit學習中的隨機狀態(僞隨機數)
- 5. 隨機獲取AJAX狀態0
- 6. 多態C隨機化形狀#
- 7. 隨機從狀態s1到狀態s2給定概率
- 8. 1對1隨機匹配
- 9. 使用$(document).ready(function()})插入隨機<script>;在Joomla
- 10. 檢測雙SIM卡Android手機中兩張SIM卡的狀態
- 11. Angular $ http狀態(-1)
- 12. 隨機引擎狀態和多個確定性獨立隨機序列
- 13. 斯卡拉隨機數
- 14. Mysql的1次隨機
- 15. C++生成隨機數-1
- 16. 隨機數字1-6
- 17. C++隨機數1-9
- 18. curand狀態在恆定內存(cuda隨機)
- 19. 在與種子相關的Numpy中使用隨機狀態
- 20. 如何在Switch狀態下隨機分配病例?
- 21. 在safari瀏覽器中隨機獲取ajax狀態爲0
- 22. 如何在unity3d,c#中有兩種隨機狀態?
- 23. 在Matlab中的隨機狀態交叉驗證
- 24. Objective C - 隨機結果是1或-1
- 25. 隨機數絕對1或-1
- 26. 隨機分配1-1關係
- 27. Javascript:XMLHttpRequest任務切換
- 28. Oozie蜂巢行動卡在PREP狀態,作業卡在RUNNING狀態
- 29. copyteximage2D在狀態機方面
- 30. 無法解析從狀態 '狀態2' '狀態1' 從一個狀態
你怎麼覺得張貼修改,使這個值得的答案嗎? – 2013-07-11 17:15:25