Nadal nie używam Javascript. Opracowuję prostą stronę, na której klikam przycisk pobierający wartość z serwletu i wyświetlam go. Działa dobrze, chyba że kliknę jak szalony na przycisku. Czasami wyświetlany wynik jest zerowy.Czy wywołania metody Javascript są wątkowane lub synchronizowane?
Zastanawiam się, czy jest to spowodowane przez jednoczesnych połączeń do tej samej funkcji czynności:
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);
}
Czy Javascript wątku bezpieczny? A jeśli nie, w jaki sposób mogę zsynchronizować lub wyizolować wywołania tej metody?
Myślę, że większość przeglądarek próbuje zapobiegać wyścigom. Nie widziałem żadnych bloków synchronizacji ani takich w JavaScript, które zostały zaprojektowane jako łatwe (i jednowątkowe). –