-2

繰り返しなしでページにアクセスした 3 秒後にページをリロードしたい

使ってみた

var t;
t=setTimeout(function(){

     window.location.reload();
},3000);

しかし、ページは継続的にロードされています

だから私はこのように試しました

 var t;
 t=setTimeout(function(){
 clearTimeout(t);
           window.location.reload();
 },3000);

このトリックも機能しませ
ん。3秒後に繰り返さずにページをリロードする方法を教えてください。

4

3 に答える 3

1

これは、ページがリロードされると、スクリプトもリロードされるため、ブラウザがスクリプトを再度実行するためです。1 つの解決策は、Cookie を使用することです。

function SetMeow() {
 var a = new Date();
 a.setTime(a.getTime() + 9999999999999999999);
 document.cookie = "Cat=meow;expires="+a.toGMTString();
}        
var b = document.cookie.replace(/(?:(?:^|.*;\s*)Cat\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if(b!="meow"){
var t=setTimeout(function(){
     SetMeow();
     window.location.reload();
},3000);
}
于 2013-10-13T16:01:32.403 に答える
0

フラグが必要で、ローカル ストレージまたは Cookie を使用し、ページを 1 回リロードすると変更されます。または、ページが読み込まれるたびに新しい間隔が再度設定されます。

于 2013-10-13T16:04:11.820 に答える
0

ページを更新すると、まったく新しいページが読み込まれるため、実際にはそれを行うことはできません。

簡単に言えば、ページ間で状態を保存する必要があります。これは複数の方法で実行できます。

  • AJAX リクエストをサイド スクリプトに送信する
  • Cookie に状態を保存する
  • HTML5 LocalStorage を使用する

localStorage が最も簡単です。

var t = setTimeout (function () {
  if (localStorage.dontReload && JSON.parse(localStorage.dontReload)) { return }
  window.location.reload();
  localStorage.dontReload = true;
}, 3 * 1000);

localStorage に関する注意事項:

  • 比較的新しいブラウザでのみ動作します(2年以上前のものには問題がある可能性が高いですが、最新のブラウザでは問題ありません)
  • 値を文字列形式でのみ保存します
  • 現在のドメインの値のみを保存するため、値は現在のページに対してローカルになります:)
于 2013-10-13T16:07:00.860 に答える