2011-07-21 17 views
5

XHR経由でファイルをアップロードするときにonProgressイベントに登録しています。私のプログレスバーは(jQuery経由で)アニメーション化され、より美しい視覚を提供します。xhr.upload.onProgressはどのくらいの頻度で起動しますか?

onProgressは非常に急速に発射すると思われるので、私は、私は1連続アニメーションプログレスバーを持つことができるように、私はこれに回答を絞ることができる、私は何とかプロセスを考案することができるように、それが実際にトリガーされますどのように多くの場合、疑問に思った

答えて

2

_.throttle(function, wait)

UnderscoreJSには、機能制限のためのユーティリティがあります。

実際の金額onProgressは、ブラウザ固有のものであるため、時間ベースのソリューションで実際のコールバックを抑制することをお勧めします。

7

jQueryの有益である可能性が拡張しながら、何かのために、この単純な拡張jQueryはオーバーヘッドに値するものではありません。関数呼び出しを制限するための効果的な解決方法は、次のように書くことができます。

xhr.upload.onprogress = function(event) { 
    // limit calls to this function 
    if (!this.NextSecond) this.NextSecond = 0; 
    if (Date.getTime() < this.NextSecond) return; 
    this.NextSecond = Date.getTime() + 1000; 

    // this code gets executed at least one second apart from the last time 
} 
関連する問題