1

サインアップ フォームで XMLHttpRequest を使用して、入力したユーザー名が既に使用されているかどうかを確認します。スクリプトは正常に実行されますが、リクエストの送信時に遅延が発生することに気付きました。リクエストを送信した後、Web ページが 1 秒間フリーズします。

リクエストを「バックグラウンドで」実行し、フロントエンドで遅延を発生させない方法はありますか? 私は Twitter の実装が気に入っています。データベースを検索している間、回転する砂時計のアイコンが表示されます。どうすれば似たようなものを手に入れることができますか?

4

2 に答える 2

7

非同期 XHR を使用したい - 現在、同期リクエストを実行しているため、読み込みが完了するまでページをフリーズする必要があります。非同期 XHR は、ロード ステータスの更新を提供する callbck 関数を呼び出します。

メモリが機能する場合は、行う必要があります

 xhr.onreadystatechange = function() { 
     if (xhr.readyState === 4 && xhr.status === 200) loadFinished();
 }
 xhr.open(requestType, url,  true);

trueリクエストを非同期にする場所。

于 2009-05-29T01:29:49.543 に答える
1

XMLHttpRequest がバックグラウンドで非同期に動作するように指定する必要があります。次に、コールバック関数を提供して、操作が完了するまでユーザーがブラウジングを続行できるようにします。

多くのサイトでは、操作が戻るのを待っている間、単にアニメーション GIF を表示するだけです。これは、何かが起こっているように見えるため、ユーザーが探しているという印象を与える可能性があります。http://www.ajaxload.info/で、これらの AJAX 回転インジケーターの 1 つを簡単に設計およびダウンロードできます。

于 2009-05-29T01:31:32.723 に答える