我還是Javascript的新手。我正在開發一個簡單的頁面,我點擊一個按鈕獲取一個servlet的值並顯示它。它運作良好,除非我點擊按鈕上的瘋狂。有時,顯示的結果爲空。調用Javascript方法是線程安全還是同步?
我想知道這是否是通過同時調用同一以下功能造成的:
function loadXMLDoc2(retr) {
var xmlhttp;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
$("#" + retr).button('option', 'label', xmlhttp.responseText);
// document.getElementById(retr).innerHTML=xmlhttp.responseText;
}
}
var param = "cmd=" + encodeURIComponent(retr);
document.getElementById("TOP_LEFT").innerHTML = param;
xmlhttp.open("GET","/WebFront/Asynclet?" + param,true);
xmlhttp.send(null);
}
JavaScript是線程安全的?如果不是,我該如何同步或隔離對此方法的呼叫?
我認爲大多數瀏覽器都試圖阻止競爭條件。我沒有在JavaScript中看到任何同步塊或類似的東西,因爲它設計得很簡單(和單線程)。 –