-1

マスター ページに 4 つの aspx ページを追加して、一度に 4 つの科目用のオンライン試験 Web サイトを設計したいと考えています。そのためにはストップウォッチが必要です。

私の知る限り、JavaScript でストップウォッチを設計し、それをマスター ページに添付しました。

var tim;
var min = 120;
var sec = 60;
var f = new Date();

function f1() {
    f2();
    document.getElementById("startday").innerHTML = f.getDate() + "/" + (f.getMonth() + 1) + "/" + f.getFullYear();
    document.getElementById("starttime").innerHTML = "Exam Starts at " + f.getHours() + ":" + f.getMinutes();
    //document.getElementById("endtime").innerHTML = "Your  time is :" + f.toLocaleTimeString();
}

function f2() {
    if (parseInt(sec) > 0) {
        sec = parseInt(sec) - 1;
        document.getElementById("showtime").innerHTML = min + ":" + sec;
        tim = setTimeout("f2()", 1000);
    } else {
        if (parseInt(sec) == 0) {
            min = parseInt(min) - 1;
            if (parseInt(min) == 0) {
                clearTimeout(tim);
                location.href = "default5.aspx";
            } else {
                sec = 60;
                document.getElementById("showtime").innerHTML = min + ":" + sec;
                tim = setTimeout("f2()", 1000);
            }
        }
    }
}

しかし、私の問題は、件名を変更している場合、そのマスター ページも更新され、ストップ ウォッチ時間が 120 分以降に再び開始されることです。

だから私を助けてください。話題を変えても、時間はリフレッシュせずにそのまま続くはずです。

4

2 に答える 2

0

ASP でこれを行っている場合は、タイマーをサーバー側に保持し、新しく読み込まれたページに導入する必要があります (これにより、進行中の状態が保持されます)。そうしないと、Cookie を設定して、ページからページへ移動するときに中断したところから再開することができます。

または、新しいページを動的にロードして、iframe を使用するか、すべてのページが 1 つのドメインにローカルである場合は、ajax を介してそれらをロードすることができます。

しかし、ASP を制御できる場合は、最初のオプションが最適だと思います。

于 2013-01-02T04:39:04.097 に答える
0

ASP.Net Web フォームを使用していると仮定します。Session を使用して、Clock の状態を保持できます。マスターページでは、そのようなものを持つことができます

<script>
    var min = <%= Session["min"] %>;
    var sec = <%= Session["sec"] %>;
</script>

ユーザーが別のページに切り替えるたびに、セッション状態を更新してみてください。

于 2013-01-02T04:43:24.500 に答える