2017-08-20 8 views
0

私はカウントダウンクロックを実行しています。カウントダウンが終了すると私はそのページを一度リフレッシュしたい。私はlocation.reloadを使用していますが、読み込みと読み込みと読み込みを続けます。どのようにループを壊すのですか?JQueryのlocation.reloadを複数回停止するにはどうすればよいですか?

<script type="text/javascript"> 
    $('#clock').countdown('<?php echo $tickets_pageRecord['sales_start_date']; ?>') 
    .on('update.countdown', function(event) { 
    var format = '%H hr%!H %M min%!M %S sec%!S'; 
    if(event.offset.totalDays > 0) { 
     format = '%-d day%!d ' + format; 
    } 
    if(event.offset.weeks > 0) { 
     format = '%-w week%!w ' + format; 
    } 
    $(this).html('Box Office opens in '); 
    $(this).append(event.strftime(format)); 
    }) 
    .on('finish.countdown', function(event) { 
    $(this).html('<h3>Click on shopping cart to buy tickets</h3>'); 
    location.reload(); 
    }); 
</script> 
+0

ローカルストレージを使用して、状態を保存する変数を設定します。 –

+0

localstorageは唯一のオプションです –

答えて

1

何らかの状態を渡す必要があります。リロードした後、もう一度すべてを実行する必要はありません。

あなたはすることができます...

  1. ストレージオプション(クッキー、ローカルストレージなど)のいずれかにフラグを追加
  2. を実行していないスクリプトを伝えるために、クエリ文字列パラメータを追加しますが、あなたができることあなたがそうであるように - ページが著しく異なっている場合は、その違い

しかし、それよりもさらに良いためにテストすることができ(それは私が想定しているので、あなたがリフレッシュされている)スクリプト

  • を実行するかどうかを決定するためにチェック時間がすでに過ぎている場合は、サーバー上でPHPを実行します。JavaScriptを追加しないでください(ボックスオフィスが開いているときに更新するように見えます)。

  • +0

    あなたが提案したようにPHPを使用する際の問題は、ページが最後の1秒までカウントダウンしている場合でも、ページを更新する必要があることです。年齢を自動更新し、リンクとショッピングカートを表示したい。だからPHPは私が必要とするものではありません。 – TerryAlly

    +0

    @TerryAlly - スクリプトを追加する時刻より前であれば、サーバー側の時刻を確認します。スクリプトを削除した後であれば、時刻を確認します。そうすれば、興行収入が開かれた後はリフレッシュは起こらない。クライアントの時間がサーバーの時間と完全に一致しないため、わずかなシムが必要な場合があります。そのため、最初のページを送信する時刻を知らせる必要があります。 – Fenton

    +0

    あなたが提案したように私はPHPと組み合わせることに決めました。しかし、location.reload()はまだ発火していたので、削除して同じURLへのリダイレクトに置き換えられました。 JQueryは本当に複雑です! – TerryAlly

    関連する問題