2010-11-18 21 views
2

setInterval() (or) setTimeout() in DOMpolling in ajaxの違いを知りたいと思います。主な違いは何ですか?両方が同じ場合、なぜ2つの異なる名前で識別されますか?setIntervalとPollingの違いは?

AJAXでポーリングを行うのはどういう意味ですか?

この質問に関するリンクやリソースは、現時点ではもっと感謝しています。

答えて

5

setIntervalは、繰り返しタイマーを設定します。setTimeoutは、1回だけ発生するタイマーを設定します。ポーリングは、通知されるのを待つのではなく、繰り返し何かを求めているときです。場合によっては通知する方法がないなど、ポーリングが必要な場合もあります。これはAjaxアプリケーションでよく見られます。あなたがやりたいことに応じて、setIntervalsetTimeoutの両方を使ってポーリングを実装することができます。

定期的にサーバーにリクエストする場合は、setIntervalの代わりにsetTimeoutを使用することをお勧めします。コールバックではリクエストを行い、応答を待ってからsetTimeoutを使用して新しいタイマーを設定します。 setIntervalを使用しており、リクエストの待ち時間がインターバルに匹敵する場合は、応答が順不同になる危険があります。たとえば、タイマーが起動してリクエストを行うと、通常よりも少し時間がかかります。タイマーが戻ってくる前にもう一度時間がかかるので、新しいリクエストを行います。今、あなたは2つの要求を待っています。 2番目のリクエストを行う前に最初のリクエストが戻ってくるのを待つ方が良いでしょう。

1

定期的にサーバーにpingを実行して準備ができているかどうかを確認するときにポーリングが行われます。ユーザーは不特定の時間がかかりますが、待機するには時間がかかりすぎる要求をした可能性がありますので、結果が準備完了であるかどうかを確認するためにx秒ごとにサーバーをポーリングします。

setTimeoutは、指定された間隔での後に関数を実行します。

setIntervalは毎回関数を繰り返し実行します。

あなたはポーリング方式を実装するために、これらの二つの機能を使用することができますが、彼らは間違いなくポーリングと同じではありませんhttp://www.w3schools.com/js/js_timing.asp

をチェックしてください。

関連する問題