1

ドキュメントを読み込んだ後、ページを1回更新したいと思います。だから私はこのコードを書きました。正常に動作していますが、何度も呼び出しています。同じページを更新しているからです。しかし、1回の実行後に間隔をクリアしたいと思います。

function refreshPage(){
    document.location.reload(true);
    alert('page is refresh.');
}
var interval = setTimeout('refreshPage()', 3000);
4

2 に答える 2

1

遅延が何であれ、1回だけ機能させたい場合は、実行した事実をlocalStorageに保存できます。

    function refreshPage(){
        alert('page will refresh.');
        document.location.reload(true);
        localStorage['refreshDone'] = 'yes';
    }
    if (!localStorage['refreshDone']) {
        setTimeout('refreshPage()', 3000);
    }

ただし、ページをリロードするたびにウィンドウ変数が失われるため、タイムアウトまたは間隔を単純にクリアすることはできません。

正確な目標がわからないため、最近更新していない場合に更新したい場合は、localStorageにタイムスタンプを保存できます。

    function refreshPage(){
        alert('page will refresh.');
        document.location.reload(true);
        localStorage['refresh'] = new Date().getTime();
    }
    var lastTimeRefresh = parseInt(localStorage['refresh']||'0', 10);
    if (new Date().getTime() - lastTimeRefresh > 30*60*1000) { // 30 minutes
        setTimeout('refreshPage()', 3000);
    }
于 2012-12-21T11:11:47.903 に答える
0

最初の更新時にjavascriptCookieを設定してから、Cookieが設定されているかどうかを確認できます。設定されていない場合は、Cookieを設定してページを更新してください。設定されていない場合は、何もしません。

于 2012-12-21T11:13:27.957 に答える