2010-11-21 8 views
1

過去に私がイベントをカバーしたときに、5分のタイマーでメタリフレッシュを使用してページを更新し、最新の更新を得ました。ページを更新するためにmeta-refeshを使用する代わりに

これは完璧な方法ではないことを認識しています(IEではいつも動くわけではなく、人の流れを中断させたり、スクリーンリーダーを持っている人のために物事を再開するなど)。このような状況に対処する。

サーバー上のhtmlファイルが新しく、「更新情報があります。更新するにはここをクリックしてください」というメッセージが表示されたら、数分ごとにajaxチェックのようなことをすることはできますか?

狂っている場合は、ちょうど5分から数えてちょうどリフレッシュを示唆するジャバスクリプトについてはどうですか?

チュートリアルやコードスニペットを教えていただければ幸いです。私はちょうどテレビでプログラマーを演奏する。 :-)

+1

手動でサーバーのhtmlファイルを更新しますか? – BGerrissen

+0

ほとんどの場合、htmlページの寿命は短いです。人々は最新のバージョンを見ていることを確認するだけで、このようなことは本当に必要なのでしょうか? –

答えて

0
setInterval(function() { 
    if (confirm("Its Been 5 Minutes. Would you like to refresh")) { 
    window.location.reload(true); 
    //Or instead of refreshing the page you could make an ajax call and determing if a newer page exists. IF one does then reload. 

    } 
}, 300000); 
+0

遅れて申し訳ありません。ありがとう、幸せな休日。 – Ian

1

実際、タイムアジAjaxテストの考えは素晴らしいアイデアです。私はそれが正確にStackOverflowが使用するものであるかどうかはわかりませんが、他の回答が投稿されているかどうかを定期的にチェックし、更新がある場合は一定の間隔でユーザーを表示します。

私は、これはこれらの理由のために理想的であると思う:

  • それは控えめだ - 彼らはそれが帯域幅を無駄にしません
  • を気にしないならば、読者は簡単にアップデートを無視することはできません - ユーザーでない限り何の再読み込みを
  • これは有益です。ユーザーはアップデートがあることを知っていて、それに対処することができます。

私の取る方法 - 新しいスクリプトをチェックするスクリプトに最新の投稿IDを送信する方法を教えてください。このスクリプトはデータベースにクエリを発行して、新しい投稿があるかどうか、そしてその投稿数を確認できます。この番号を返すことができます。新しい投稿がある場合、更新の数を含むいくつかの(モーダルではない)メッセージを表示し、ユーザがそれについて何をすべきかを決定させる。

+0

変更がなければ帯域幅を無駄にしないという考えが好きです。投稿IDのコンセプトに関する唯一の問題は、これが静的ファイルまたはデータベース駆動型ページ内に自己完結していることです。例えばexample.com/stackoverflowawards/2010/winners。そのページは同じファイル/ dbエントリ内の新しいコンテンツで更新されますが、各更新ごとに新しい投稿ではありません。 – Ian

+0

タイムスタンプのクラスやその他のメタデータを使用して、いつでも投稿にフラグを付けることができます。その後、タイムスタンプと、ファイル/ dbエントリの最後に更新されたタイムスタンプを比較します。同じ概念で、更新があったかどうかを判断するさまざまな手段。 –

0

関数はjavascriptで使用できます。

ここにあなたが実際に第二のparam(5分間300000)のリフレッシュの間に最初のパラメータおよびミリ秒数のためのページを更新関数に名前を渡し、それを使用しますサンプル

setInterval("refresh function", milliseconds, lang); 

です。 3番目のパラメータlangはオプションです

+0

..注SetTimeoutは1回だけ実行されます。setIntervalは継続的に実行されます。 –

+0

@John Hartsock:oooops!思い出してくれてありがとう。あなたは、絶対に正しい。私は私の質問を編集するつもりです。ありがとう! – Lorenzo

0

ユーザがスコアと相互作用して物事をクリックすると、ページを更新するだけで少し失礼になります。私は、ページが更新されたという通知のような何かをするのが理想的だと思います。

私はjQueryを使用して、サーバー上のファイルまたは更新されたデータを返すものにajax呼び出しを行います。うなり声のメッセージを投げるよりも、それは新しいだ場合は、変更し、新たなスコアと、そのメッセージ内のオプションが更新され、新しい結果を表示したものは何でもして

Gritter - jQuery Growl System Demo of what a Growl is using Gritter

A Growlのメッセージは多分出てくるでしょう。

jQuery Ajax information

関連する問題