2009-08-17 8 views
3

ウェブページの表示をランダムに更新する必要がある状況があります。私はAJAXでこれをやりたいと思ったがAJAXは常にサーバーの更新を探しますか? Javascript

while(true) { ajaxFunction(); sleep(1) } 

タイプのことを行うよりも、この他を行う方法を確認していないのです。

この問題は、サーバーの変更時にWebページを非常に迅速に更新する必要があることがありますが、変更が非常に散発的に起こることがあることがあります。

EDIT:これはUIWebViewを使用したiPhoneアプリケーションで、iPhoneのプッシュ通知を使用してJavaScriptとのインタフェースが可能ですか?

ありがとうございます!

答えて

0

変更が散発的な場合は、AJAXを使用しないことを検討してください。ユーザーがページをリフレッシュまたは再訪するのを待ちます。

+1

私は、ユーザーが – DevDevDev

+0

瞬時にディスプレイへの変更で更新される必要がある「が、変更は非常に散発的に起こる可能性があり、時には、決して」 – mcandre

+0

それでもクライアントができるだけ早く知る必要があり、「WebページがAに非常に迅速に更新する必要が言ったようにサーバー " – DevDevDev

1

私は考えることができる唯一の方法は、常にそれを照会することです。あなたの応答を小さく保つだけで、何の理由もなく大量のデータを移動させることはありません。データが利用可能になるまで、サーバーからの応答を中断することさえできます。

setInterval(function(){ 
    $.get("updates.php", function(result) { 
    alert(result); 
    }); 
}, 5000); 

も、ユーザーの一部に非アクティブの10分後のsetInterval()をキャンセルするupdates.phpにいくつかのロジックを構築する可能性があります。それは、もはやログインしていないユーザーからの絶え間ない要求を殺します。

1

サーバーの負荷を最適化する場合は、何らかの種類の彗星(サーバープッシュ)テクノロジの実装を検討する必要があります。少数のユーザーしかいない場合は、ポーリングソリューションよりも適しています。

彗星について:彗星技術は他に何もありませんが、サーバーが要求にすぐに応答しない単純なHTTP要求を行いますが、何か応答があるまで待機します。サーバ上のスレッドが中断されるまで。

サーバープッシュテクノロジを実装する際に考慮する必要がある技術的側面があります(スレッドを一時停止する必要がある場所など)。オープンソースのものを使用するのが最善です。あなたが彗星を探しているなら、それをウェブ上で見つけるのは簡単です。

+0

これは私が提示したソリューションですが、ソリューションをより完全に完成させるために外部ライブラリを使用するとは考えていませんでした。 –

関連する問題