我一直在研究一個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. sklearn隨機狀態不隨機
- 2. 隨機:狀態不夠(1字節);忽略
- 3. AJAX就緒狀態卡住了1
- 4. Python - 隨機卡
- 5. 通過RcppEigen隨機狀態設置隨機
- 6. Scikit學習中的隨機狀態(僞隨機數)
- 7. 多態C隨機化形狀#
- 8. 隨機獲取AJAX狀態0
- 9. Python隨機使用狀態和種子?
- 10. Elastic Beanstalk隨機進入離線狀態
- 11. 隨機從狀態s1到狀態s2給定概率
- 12. 在狀態機
- 13. 1對1隨機匹配
- 14. VHDL狀態機正在跳過狀態
- 15. 使用$(document).ready(function()})插入隨機<script>;在Joomla
- 16. 檢測雙SIM卡Android手機中兩張SIM卡的狀態
- 17. LongClick狀態卡住
- 18. 稱爲狀態1
- 19. Angular $ http狀態(-1)
- 20. 隨機引擎狀態和多個確定性獨立隨機序列
- 21. 斯卡拉隨機數
- 22. 隨機卡從可能性
- 23. 生成隨機值1/X
- 24. Mysql的1次隨機
- 25. 隨機數:0或1
- 26. TrafficStats.getUidRxBytes(ProcessUID)隨機返回「-1」?
- 27. C++隨機數1-9
- 28. 隨機數字1-6
- 29. -1#Q0顯示了隨機
- 30. C++生成隨機數-1
你怎麼覺得張貼修改,使這個值得的答案嗎? – 2013-07-11 17:15:25