2016-05-16 13 views
-1

イメージのために何らかの種類の遅延ロードを作成しました。これは次のように動作します:各500ms実行するjquery関数を使用することをお勧めしますか?

500msごとにデバイスに表示される写真が表示され、実際のイメージがロードされ始めます。この機能はロードされたイメージでは実行されませんが、イメージがロードできない場合は、このイメージが再び表示されます。

この種の機能を500msごとに使用するのに問題はありますか?

+1

を..私はあなたが要求ごと_500ms_を送信するとき、これはserver''に重い負担となります感じに良いです。増加時間.. –

+0

私の主な質問はなぜですか?何が最初に失敗した場合、イメージを2度目に読み込むことができると思いますか? – Liam

+0

いいえ.Guruprasad Raoはいません。エラーが発生した場合には一度読み込まれなかったイメージのリクエストを送信します。読み込み時に再試行します。もう一度 –

答えて

0

画像が表示されるのに応じてこれを使用しているようですね。ページ内のすべての画像を500ミリ秒ごとにポーリングするのではなく、ページがにスクロールされている場合にのみ、のチェックをトリガーするほうがよいでしょう。一回500ミリ秒以下で頻繁にならないように、それはの利益ました:

  1. すべての時間が私は不必要

ビューで画像を確認していない実行している500ミリ秒間隔のループを持っていませんユーザーがスクロールするときに画像が表示され、表示されないと仮定します

  1. バインド$(window).scroll
  2. のイベントが、それはsetTimeout(あなたのケースでは500ミリ秒)で一定期間後にイベントを発生さがあります:次のようにそのインスタンスです。
  3. 複数回発射それを防ぐために、(ユーザーがスクロールした場合、再びそのタイマーをキャンセルして、それを開始します。
  4. イベント焼成にを聞いて、そこに自分の画像のチェックを行う。

ここでは方法の例ですコードが見えるかもしれません。だから、基本的にはあなたが本当の画像をロードするために、すべての_500ms_ server` `にリクエストを送信している

var scrollIntervalTimeout; 
$(window).on('scroll', function() { 
    // Cancel the timeout and start it again 
    clearTimeout(scrollIntervalTimeout); 
    scrollIntervalTimeout = setTimeout(function() { 
    $(window).trigger('scrollDidEnd'); 
    }, 500); // 500ms delay before firing the event 
}); 

// Listen for the scrollDidEnd event 
$(window).on('scrollDidEnd', function() { 
    // Perform your image check here 
}); 
+0

ユーザーの確認用に関数を実行するたびに、ロードする新しい画像がありますか?それがロードされ始めるならば、この画像はアンロードされた画像です。一度ロードすると画像が再表示されます。再度確認します。 500 msごとにユーザーの表示を確認してください。これの欠点は何ですか? –

+0

ok.Iあなたの機能を試しましたが、追加された新しい画像のために機能しませんでした。それは、500ミリ秒ごとにユーザのビューをチェックする機能を実行するためのパフォーマンス上の欠点があることを知りたいですか? –

関連する問題