的變量聲明之外的外部可見:變量不是這個Ajax請求
var total=0;
on success of AJAX{
total++;
alert(total);// gives value
}
alert(total)// gives zero value
在這裏我得到了總價值爲0。
的變量聲明之外的外部可見:變量不是這個Ajax請求
var total=0;
on success of AJAX{
total++;
alert(total);// gives value
}
alert(total)// gives zero value
在這裏我得到了總價值爲0。
你ajax
要求很有可能是異步。這意味着你的alert
發生響應返回之前。
依賴響應(如您的警報)需要的任何代碼放置在您的onreadystatechange
處理程序。
它不清楚究竟是什麼問題,但它聽起來像典型的異步混淆。一個XMLHttpRequest
默認情況下,運行異步及其回調時遇到一個事件火(如,readyState的4)。
因此,任何你的Ajax處理程序會被觸發之前,您alert()
聲明最有可能遇到。
所以,最簡單的辦法是,將是alert()
到您的.onreadystatechange
分別.onload
事件處理程序,以處理該success
部分的最底部。
最糟糕的解決方案(即使沒有人會推薦)是將您的XMLHttpRequest
設置爲syncronous。這意味着,在請求運行的時候,您的瀏覽器及其UI線程被鎖定,直到請求結束。
我Ajax調用後設置文件共此值。 – Judy 2012-07-30 23:15:41
@Judy這不會有所作爲,如果調用是異步 – Daedalus 2012-07-30 23:16:31
@Judy:對了,Ajax調用是異步的* *。如*在*不同步*。如在,它發生*亂序*。換句話說,請求*在響應返回之前不會阻止*後續代碼的執行。 – 2012-07-30 23:16:41