2

現在、私の webapp はアクションをトリガーするために websocket データを受け取ります。

これはページのリロード時に中断するため、特定のイベントをトリガーできるクライアント側のソリューションが必要です。

この考えは可能ですか?

あなたが持っていると言う

  • TimeX = current_time から 10 秒がトリガー X を開始する必要があります
  • TimeY = current_time から 20 秒でトリガー Y が開始されます
  • TimeZ = current_time から 30 秒でトリガー Z が開始されます

    1. これらを html 内に保存し、秒数がゼロになったときにカウントダウン トリガーを実行することは可能でしょうか?
    2. ブラウザがカウントダウン 0 から 1 の間のちょうど 2/3 のフェイルオーバー時間でイベントをまだトリガーできるときにリダイレクトするとしたらどうでしょうか?

私は jQuery の経験が少ないので、これに関するフィードバックや考えを聞きたいと思っています。前もって感謝します

4

2 に答える 2

2

setInterval()関数への遅延呼び出しを設定するために使用する必要があります。このようなもの:

var trigger;
function myFunc(t) {
    switch (t) {
        case "Y": 
            callTriggerY();
            trigger = "Z";
            break;
        case "Z": 
            callTriggerZ();
            trigger = "X";
            break;
        default: 
            callTriggerX();
            trigger = "Y";
            break;
}

setInterval(function() { myFunc(trigger); }, 10000); // call on interval
$(window).unload(function() { // call on leaving/reloading page
    myFunc(trigger);
});
于 2012-09-03T12:47:50.447 に答える
1

1.へ:

はい、可能です。

JavaScript

$(function() {
    $('.timer').each(function(entity) {
        setTimeout(function(eval(entity.attr("data-timer-code"))), parseInt(entity.attr("data-timeout")));
    }
});

HTML

<div class="timer" data-timeout="12000" data-timer-code="asdf()"></div>

私がそこで行っていることは、特別なデータを div に追加し、JavaScript コードで、これらすべての div を取得して、それぞれのタイマーを作成することです。

2.へ:

残念ながら、それをページコンテキストから渡し、ページが再度読み込まれたときにタイマーをリロードする方法がわかりません。

于 2012-09-03T12:50:59.817 に答える