Ich habe zwei verschiedene Sätze von a
und p
Elemente in meiner HTML-Seite, die standardmäßig als display:none
gemacht werden.Async Ajax Anruf verursacht Browser zu frieren
Am Ende der von der Seite, die ich durch das Senden ihrer ID
‚s eine Funktion bin Aufruf und einige values
eine von ihnen auf einigen Bedingungen
1. Satz
<a style="display:none;" id="ClickMe1">Click Me</a>
<p class="button" id="Sorry1" style="display:none;">Sorry!</p>
Basis zu ermöglichen, 2. set
<a style="display:none;" id="ClickMe2">Click Me</a>
<p class="button" id="Sorry2" style="display:none;">Sorry!</p>
Funktionsaufruf
<script>
window.onload = function() {
Initialize("ClickMe1", "Sorry1", "23,35");
Initialize("ClickMe2", "Sorry2", "76,121");
};
</script>
initialisieren Funktion besteht aus a ID
, p ID
und eine Reihe von Werten (es n
Werte enthalten kann), welches Element zu überprüfen
Javascript
function Initialize(ClickMeID, SorryID,Values) {
var valList = Values.split(',');
for (i = 0; i < valList.length; i++) {
var paramts = "{'val':'" + valList[i] + "'}";
jQuery.ajax({
type: "POST",
url: "/services/MyService.asmx/GetData",
data: paramts,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (response) {
Status = response.d.toString();
},
error: function (response) {
}
});
if (Status == "0") {
$('#' + SorryID).show();
return;
}
}
$('#' + (ClickMeID).show();
}
In meiner Funktion aktivieren ich das Komma bin Aufspalten getrennt Values
und durchlaufen jeden Wert und machen einen ajax
Anruf an meinen Dienst mit async:false
.
Die Antwort des Erfolgsaufrufs lautet entweder 1
oder 0
. Wenn einer der Values
0
eines Funktionsaufrufs ist, möchte ich Element sonst a
Element der gesendeten ID's
anzeigen.
Diese Funktion funktioniert einwandfrei, aber wenn der Funktionsaufruf ausgelöst wird, wird browser
eingefroren, bis die Funktion ausgeführt wird.
Wenn ich async: true
machen Ich bin nicht in der Lage, herauszufinden, welche der Schaltflächen festlegen aktivieren und deaktivieren
Wie kann ich den Browser machen nicht einfriert.
deine, *** sync *** ajax call du meinst? –
nur FYI 'async: false,' bedeutet, dass es synchron ist nicht asynchron - so wartet es auf die Rückkehr und scheint zu frieren –
@KevinB Sorry, ich habe dich nicht bekommen – Chaitanya