在擴展中,我在寫我需要驗證我存儲在localStorage中的一些對象與我的服務器存儲在一起。爲此,我創建了一個for循環,它簡單地爲每個本地存儲元素髮送數據,並且需要對響應進行一些操作。該代碼是這樣的:Ajax Inside For Loop
for (var key in localStorage) {
if (! some condition)
continue;
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4 && httpRequest.response == 200) {
do something with 'key' from the for loop
}
}
};
var url = BASE_PATH ;
httpRequest.open("POST", url);
httpRequest.send(some data);
}
但是在調試似乎在Ajax響應,從for循環的「鑰匙」是不是我需要的關鍵是:我期待得到相同的密鑰與每個ajax調用匹配的for循環,我得到的是所有ajax調用的相同鍵。 我做錯了什麼或期待什麼是不可能的?我認爲,因爲ajax在關閉函數內部,所以值被保存在內存中或類似的東西中。
可能重複[Javascript閉合內部循環 - 簡單實用的例子](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – 2013-05-14 14:49:57
有一個「)」 (httpRequest.readyState === 4)&& httpRequest.response == 200) – 2013-05-14 14:52:52