2012-03-22 7 views
2

Chromeの最新バージョンに配備される開発中のタッチスクリーンキオスクアプリケーションがあります。ベストプラクティス:Javascriptで非常に長いポーリングプロセスを実行していますか?

アプリケーションは、更新されたコンテンツを取得するために、WebサービスへのAJAX呼び出しを、10分ごとに呼び出す必要があります。

キオスクアプリケーションであるため、ページは非常に頻繁にリロードされることはほとんどなく、理論的には、キオスクがオフになっていない限り、一度に数日間アプリケーションを実行できません。

私は懸念しているのは、メモリの使用量と、非常に長い実行中のsetTimeoutループが大量のメモリを通過するのに十分な時間が与えられているかどうかです。

私は現在、Webワーカーの使用を検討していますが、Webソケットについても検討していますが、このタイプのものを経験したことがある人はいますか?

乾杯は、 テリー

答えて

2

ブラウザはその上のように何の問題ガベージコレクタを持っていません。あなたが悪いコードを介してメモリリークを引き起こさない限り。メモリリークパターンについては、an articleanother articleです。それはあなたが効率的にプログラムする方法を始めて、それらの漏れやすいコードを撃つようになるはずです。

また、DOMを考慮する必要があります。 SO上の人は、「画面上にないものは削除して、隠すだけではない」と述べました。これは、ビューの観点からエンティティを削除するだけでなく、実際にDOMから削除し、ハンドラを削除し、使用されると解放されます。

setTimeoutは、呼び出し間隔を長くします。あまりにも速く、あなたはは速くメモリを噛むだろう(そしてかなりページをレンダリングする)。私はちょうどタイマーベースの "ハッシュチェンジ"検出のためのコードをテストし、クロム上でさえ、ページをむしろ遅くする。

クロムのバグについての調査も更新されています。

+0

大きなアドバイス、ありがとう:) –

関連する問題