x秒のajax呼び出しを遅らせます

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-03-07 00:53:08829ブラウズ

Delay AJAX call for X seconds

x秒のajax呼び出しを遅らせます

jqueryコードスニペットx秒のajax呼び出しを遅らせます。 Ajaxを介してサーバー側からデータを取得する前にアクションを必要とするイベントに使用できます。 更新:Settimeout()関数を使用してこれを行うには簡単な方法があります。例については、以下を参照してください。 楽しむ! :)
<span>var pendingCall = { timeStamp: null, procID: null };
</span>
<span>$('li a').click(function (e) {
</span>    e<span>.preventDefault();
</span>    <span>var getUrl = $(this).attr("href");
</span>	<span>var timeStamp = Date.now();
</span>
    <span>var printCall = function () {
</span>        $<span>.ajax({
</span>            <span>url: getUrl,
</span>            <span>type: "GET",
</span>            <span>beforeSend: function () { },
</span>            <span>error: function (request) { alert(request) },
</span>            <span>success: function (data) {
</span>                <span>if (pendingCall.timeStamp != timeStamp) { return false; }
</span>                <span>$('#contentdiv').html(data);
</span>                pendingCall<span>.procID = null;
</span>            <span>}
</span>        <span>});
</span>    <span>};
</span>
    <span>if (pendingCall.procID) {
</span>        <span>clearTimeout(pendingCall.procID)
</span>    <span>};
</span>	<span>//set the time before call 3000 = 3 seconds
</span>    pendingCall <span>= { timeStamp: timeStamp, procID: setTimeout(printCall, 3000) };
</span><span>});</span>

Settimeout Alternative

ウェブサイトがロードされてから1秒後に、ページからロードマスクを削除するスニペットがあります。ウェブサイトがロードされている間に、ウェブサイト全体をカバーするためにロードマスクをセットアップして、たとえばロード画像を見て人々がフォームを形成します。  
<span>jQuery(document).ready(function () {
</span>	<span>setTimeout( "jQuery('#loading_mask').hide();", 1000 );
</span><span>});</span>

ajaxコールの遅延に関するよくある質問(FAQ)

AJAXコールを遅らせる目的は何ですか?

AJAXコールの遅延は、いくつかのシナリオで有益です。たとえば、ユーザーが文字を入力するたびにAJAXコールをトリガーする検索機能がある場合、サーバーに大きな負荷が発生する可能性があります。遅延を導入することにより、ユーザーがタイピングを停止してサーバーの負荷を削減した後にのみAjaxコールが行われるようにします。また、不必要な読み込み時間を防ぎ、最も関連性の高い結果が表示されるようにすることにより、ユーザーエクスペリエンスを改善できます。この機能により、AJAXコールが作成される前に、ミリ秒単位で遅延を指定できます。基本的な例は次のとおりです。

settimeout(function(){

$ .ajax({

> // ajax options
});
}、2000); // 2秒の遅延

この例では、Ajaxコールは2秒遅れます。 Settimeoutを呼び出すと、ClearTimeout関数でタイムアウトをキャンセルするために使用できる一意のIDを返します。これができる方法は次のとおりです。実行する前にキャンセルされます。

AJAXコールを遅らせることに欠点はありますか?

AJAXコールを遅らせると、サーバーのパフォーマンスとユーザーエクスペリエンスが向上する可能性がありますが、必ずしも最良のソリューションではありません。遅延が長すぎると、ウェブサイトがゆっくりとゆっくりと反応しないようにすることができます。サーバーの負荷を減らすこととスムーズなユーザーエクスペリエンスの維持とのバランスを見つけることが重要です。

AJAX呼び出しの最適な遅延を決定するにはどうすればよいですか?

AJAXコールの最適な遅延は、サーバーの負荷、AJAXコールの性質、ユーザーの期待など、いくつかの要因に依存します。良い出発点は、数百ミリ秒の遅延を設定してから、パフォーマンスとユーザーのフィードバックに基づいて調整することです。

複数のAJAXコールを一度に遅らせることはできますか?各SettimeOutコールは、必要に応じてタイムアウトをキャンセルするために使用できる一意のIDを返します。それを使用して、JavaScriptコードの任意の部分を遅らせることができます。

以上がx秒のajax呼び出しを遅らせますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。