ユーザー エクスペリエンスを向上させるために、通常は「処理しています、お待ちください!」などのプロンプトを表示します。 は、$.ajax() beforeS
end() で $.ajax() を使用するときは区別していませんでした。 Ajax の非同期リクエストと同期リクエストには違いがあります。私が初めて同期リクエストを使い始めたとき、特に経験の面で多くの問題が発生しました。
非同期と同期:
同期とは、プログラムのあるセクションが実行される前に、次のセクションが実行されることを意味します。これはブロッキング モードであり、Web ページ上でその現象が発生します。ブラウザはページをロックします (つまり、いわゆるページ一時停止状態 ステータス )、ユーザーは 他の を操作できず、現在のリクエストがデータを返すまで待つ必要があります。非同期リクエストの場合、ページはフリーズしません。
ユーザー エクスペリエンスの向上:
ユーザーがデータを送信してページが結果を返すまで待機する場合、ユーザー エクスペリエンスを向上させるために、通常、この待ち時間が比較的長くなることがあります。 「処理しています、お待ちください!」などのプロンプトが表示されます。これを実現するには、$.ajax() の下にパラメータ beforeSend() を設定します。
例:
html キー コード
<p id="warning"></p>
js キー コード ファイル内
$.ajax(function(){ . . . //省略了一些参数,这里只给出async 和 beforeSend async: false, //同步请求,默认情况下是异步(true) beforeSend: function(){ $('#warning').text('正在处理,请稍等!'); } });
同期に従って async: false を設定した場合、$('#warning').text('処理中、お待ちください!'); ウェブ上ではまったく影響がないことに注意してください。 $('#warning').text('Processing,please wait!'); をalert('test'); に置き換えると、リクエストを送信する直前にポップアップ ボックスが表示されます。しかし、これを $('#warning').text('Processing,please wait!'); のような別の値に変更すると、リクエストが結果を返すときにプロンプトが表示されません。私はこの問題について長い間疑問に思っていますが、何が問題なのかはまだわかりません。
同期リクエストを非同期リクエストに変更すると、上記の問題は解消されます。
beforeSend: function(){ $('#warning').text('正在处理,请稍等!'); }
はすぐに実行されます。
上記は、jquery ajax リクエスト メソッドと、処理中にユーザーに待機を促すコンテンツです。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。