-1

以下のスクリプトを使用して、指定された時間からカウントダウンし、スクリプトのタイムアウトまでに残っている時間 + 分 + 秒をリアルタイムで表示します。

中華鍋のカウントダウンは完全に問題ありませんが、私が直面している問題は、ブラウザーでのボタンと前のボタンを使用すると、時間が更新されず、代わりに古い時間が表示されることです。前回またはそれ以降のいずれかを示します。

ブラウザの次へボタンとへボタンでページが更新されないことは承知していますが、この問題を解決するにはどうすればよいですか?

JS

function timeout_warning(login_timeout)
{
    var counter = 0;
    var total_seconds = 0;
    var colour = '';
    var interval_id = '';

    interval_id = setInterval(function ()
    {
        counter++;

        total_seconds = login_timeout - counter;
        hours = parseInt(total_seconds / 3600 ) % 24;
        minutes = parseInt(total_seconds / 60 ) % 60;
        seconds = parseInt(total_seconds % 60, 10);

        remaining = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);

        if (minutes == 0 && seconds == 0)
        {
            document.getElementById('font_timeout').innerHTML = 'Timeout';
            window.clearInterval(interval_id);
        }
        else
        {
            document.getElementById('font_timeout').innerHTML = remaining + 'sec';
        }
    }, 1000);
}

HTML 本文

<body onload="timeout_warning('1800')">
4

2 に答える 2

0

実際の例がなければ、解決策について意見を述べることができるだけです。ブラウザーの矢印がクリックされたときに、コードがキャッシュ データからではなく Cookie から時間を取得するように、JavaScript を使用して Cookie から残り時間を読み込むことができます。

于 2013-03-27T10:30:03.487 に答える
0

これに関する解決策は既に投稿されており、フォームを使用してページにデータを保存し、ユーザーが戻るボタンを押したかどうかを確認します。いくつかのフォームデータを設定し、ページが戻った場合、そのデータがすでに設定されているかどうかを判断できます。設定されている場合は、リロードを強制する必要があります (タイマーが再び開始されるように)。

于 2013-03-27T10:35:47.310 に答える