Heim > Artikel > Web-Frontend > jquery Ajax-Anforderungsmethode und fordert den Benutzer auf, dass sie verarbeitet wird. Bitte warten Sie.
Um das Benutzererlebnis zu verbessern, geben wir in der Regel Aufforderungen wie „In Bearbeitung, bitte warten!“ aus. Wir können erreichen, indem wir die Parameter unter $.ajax() bevorS
end() festlegen. Ich habe es bei der Verwendung von $.ajax() nicht unterschieden Beim ersten Mal gibt es einen Unterschied zwischen den asynchronen Anforderungen von Ajax und den synchronen Anforderungen. Als ich anfing, synchrone Anforderungen zu verwenden, traten später viele Probleme auf, insbesondere in Bezug auf die Erfahrung.
Asynchron und synchron:
Synchronisation bedeutet, dass ein Abschnitt des Programms ausgeführt werden kann, bevor der nächste Abschnitt ausgeführt werden kann. Es handelt sich um einen Blockierungsmodus, und das ist sein Phänomen auf der Webseite Der Browser sperrt die Seite (d. h. der sogenannte Seiten-Suspendierungsstatus Status ), der Benutzer kann keine anderen bedienen und muss auf die aktuelle Anforderung warten, um Daten zurückzugeben. Bei Verwendung asynchroner Anfragen friert die Seite nicht ein.
Benutzererfahrung verbessern:
Wenn Benutzer Daten übermitteln und darauf warten, dass die Seite Ergebnisse zurückgibt, dauert es manchmal relativ lange, bis wir die Benutzererfahrung verbessern Geben Sie „Verarbeitung, bitte warten!“ und andere Aufforderungen ein. Wir können dies erreichen, indem wir den Parameter beforeSend() unter $.ajax() setzen,
z. B.:
html-Schlüsselcode
<p id="warning"></p>
js-Schlüsselcode in der Datei
$.ajax(function(){ . . . //省略了一些参数,这里只给出async 和 beforeSend async: false, //同步请求,默认情况下是异步(true) beforeSend: function(){ $('#warning').text('正在处理,请稍等!'); } });
Beachten Sie, dass, wenn Sie async: false entsprechend der Synchronisierung festlegen, $('#warning').text('Processing, please wait!'); keinerlei Auswirkungen auf das Web hat Seite. Wenn Sie $('#warning').text('Verarbeitung, bitte warten!'); durch warning('test'); ersetzen, wird unmittelbar vor dem Senden der Anfrage ein Popup-Fenster angezeigt Wenn ich es jedoch in etwas anderes wie $('#warning').text('Verarbeitung, bitte warten!') ändere, wird die Eingabeaufforderung nicht angezeigt, wenn die Anfrage das Ergebnis zurückgibt. Ich habe mich schon lange über dieses Problem gewundert und weiß immer noch nicht, wo das Problem liegt.
Ändern Sie die synchrone Anfrage in eine asynchrone Anfrage und das obige Problem verschwindet
beforeSend: function(){ $('#warning').text('正在处理,请稍等!'); }
wird sofort ausgeführt.
Das Obige ist die JQuery-Ajax-Anforderungsmethode und der Inhalt, der den Benutzer auffordert, während der Verarbeitung zu warten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!