1

過去にイベントを取り上げたとき、私は 5 分のタイマーでメタリフレッシュを使用してページを更新し、人々が最新の更新を入手できるようにしました。

これが完璧な方法ではない可能性があることを認識しています (IE では常に機能するとは限らず、人のフローを中断し、スクリーン リーダーを使用している人の場合は物事を再開するなど)、これを処理する他の方法があるかどうか疑問に思っています。状況。

サーバー上のhtmlファイルが新しい場合、ajaxのようなものを数分ごとにチェックして、「更新情報が利用可能です。ここをクリックして更新してください」というメッセージを出力させることは可能ですか?

それがおかしいのなら、5 分からカウントダウンして更新を提案するだけの JavaScript はどうでしょうか。

誰かが私にチュートリアルやコード スニペットを教えてくれたら幸いです。私はちょうどテレビでプログラマーを演じています。:-)

4

4 に答える 4

1

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

これは次の理由から理想的だと思います。

  • 目立たない - 気にしなければ、読者は更新を簡単に無視できます
  • 帯域幅を無駄にしません-ユーザーが選択しない限り、リロードはありません
  • これは有益です。ユーザーは更新があることを知っており、それに応じて行動することを選択できます。

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

于 2010-11-21T23:16:04.530 に答える
0

ユーザーがスコアを操作してクリックする場合、ページを更新するのは少し失礼です。ページが更新されたことを通知するようなことをするのが理想的だと思います。

jQueryを使用して、サーバー上のファイルまたは更新されたデータを返す何かに対してajax呼び出しを実行します。Growlメッセージをスローするよりも新しい場合

Gritter- GrowlがGritterを使用しているもののjQueryGrowlシステムデモ

Growlメッセージには、変更されたもの、新しいスコア、およびそのメッセージ内に新しい結果を更新して表示するためのオプションが表示される可能性があります。

jQueryAjax情報

于 2010-11-21T23:26:59.957 に答える
0

javascriptでsetInterval関数を使用できます。

ここにサンプルがあります

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

これを使用して、最初のパラメーターのページを実際に更新する関数に名前を渡し、2 番目のパラメーターの更新間のミリ秒数 (5 分間で 300000) を渡します。3 番目のパラメータ lang はオプションです

于 2010-11-21T23:16:28.883 に答える
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);
于 2010-11-21T23:13:24.320 に答える