0

アプリケーションへのリンクを提供する Web ページ (イントラネット上) があります。ただし、ジョブは毎週水曜日に実行されます。1000時間で。私がやりたいのは、その時間に達したときにページ上のリンクを無効にし、30 分ほど後に有効にすることです。

更新に基づいて時間を監視する関数を既に作成しました。更新をなくして、バックグラウンドで時間を監視するものを用意したいので、いわば(トリガー)ルーチンを呼び出してリンクを無効にします。完了したら、リンクを再度有効にします。

これをjavascriptでどのように達成できますか?

4

2 に答える 2

3

JavaScript のアプローチを使用する場合、ユーザーのブラウザーの JavaScript が無効になっていると失敗します。必要に応じて、メンテナンス ステータスをデータベースに保存します。同じことを行っても、ユーザーが自分の Web サイトにアクセスしたときに、最初に使用する機能は次のとおりです。メンテナンス ステータスを確認するには、メンテナンス ページにリダイレクトします。

再び 30 秒ごとにメンテナンス ページを更新し、ステータスを確認します。メンテナンス ステータスが表示されない場合は、ユーザーをホームページにリダイレクトします。

于 2013-02-14T16:43:36.640 に答える
0

メンテナンス中にこれらのリソースへのアクセスを防ぐためにサーバー側のロジックを使用する必要がありますが、タイマーを使用することで支援できます (たとえば、setTimeout1 秒に 1 回の呼び出し)。

これは、必要に応じて動作するように見えるプログラムです。

(function() {

    var state = null;

    (function loop() {
        var now = new Date();
        var day = now.getDay();
        var min = 60 * now.getHour() + now.getMinutes();

        var disable = (day === 3 && (min >= 600 && min < 630));
        if (disable !== state) {
             if (disable) {
                 // call your disable code
             } else {
                 // call your enable code
             }
        }
        state = disable;
        setTimeout(loop, 1000);
    })();

})();

この変数は、状態に遷移がある場合にのみ、無効化/有効化コードを毎秒繰り返しstate呼び出さないようにすることを目的としています。

テスト目的で、10 秒ごとに状態を切り替える実行例については、http://jsfiddle.net/alnitak/B8u6f/を参照してください。

于 2013-02-14T16:43:41.497 に答える