私はまだJavascriptを初めて使っています。私はボタンをクリックしてサーブレット上の値を取得して表示する簡単なページを開発しています。私がボタンに狂っているようにクリックしない限り、うまくいきます。場合によっては、表示される結果はnullです。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で同期ブロックなどを見ていませんでした。 –