2013-02-14 47 views
0

我有一個網頁(在我們的內部網),提供應用程序的鏈接。但是,每個Weds都有一份工作。在1000小時。我想要做的是在達到所述時間時禁用頁面上的鏈接,並在30分鐘左右後啓用。如何使用JavaScript根據特定日期和時間刷新頁面?

我已經創建了一個基於刷新監視時間的函數。我想消除刷新並在後臺監視時間,可以這麼說(觸發),然後調用例程來禁用鏈接。完成後,重新激活鏈接。

這怎麼能在javascript中完成?

+1

你認爲你可以信任用戶的掛鐘時間嗎? – 2013-02-14 16:43:07

+1

在此期間,爲什麼不能正確執行並重定向到「計劃維護」啓動畫面? – Shmiddty 2013-02-14 17:09:08

+0

Shmiddty ...感謝您的建議。您建議的內容可能比在此期間啓用/禁用超鏈接更容易。我使用了Alnitak代碼,但它清除了屏幕並僅顯示啓用/禁用的鏈接。我可能做錯了什麼,但會繼續工作!謝謝 – Vernon 2013-02-15 01:59:36

回答

0

雖然,你應該使用服務器端邏輯,以防止在獲取這些資源

這裏有一個節目我只是敲了顯示爲所需的工作:維護,您可以通過使用一個定時器(例如每秒一次一個setTimeout調用)幫助

(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旨在確保它不會重複每一秒鐘都會調用您的禁用/啓用代碼 - 只有在狀態發生轉換時纔會這樣。

請參閱http://jsfiddle.net/alnitak/B8u6f/查看運行示例,該示例每10秒切換一次狀態,僅用於測試目的。

+0

感謝您的示例。除了使用我的啓用/禁用鏈接顯示的新網頁外,只想在當前頁面啓用/禁用鏈接,如果可能的話 – Vernon 2013-02-14 23:53:33

+0

@Vernon在我的答案中沒有特定的啓用/禁用代碼,您添加的代碼必須是原因。你應該提出一個新的問題。 – Alnitak 2013-02-15 07:53:50

3

如果你採用JavaScript方法,如果你的瀏覽器JavaScript被禁用,它會失敗,如果你願意,可以在數據庫中保存維護狀態,即使我這樣做,當用戶登陸我的網站時,我使用的功能是檢查維護狀態,如果它將他重定向到維護頁面。

再不斷刷新你的維護頁面每隔30秒,檢查狀態,如果維護狀態炫耀,重定向用戶返回到主頁

+0

這是一個內聯網 - 他可能需要啓用JS。 – Alnitak 2013-02-14 16:48:45

+0

@Alnitak我總是使用各種方式來破壞應用程序;)所以我們不能確定 – 2013-02-14 16:49:36

+0

是真的 - 但無論如何他也應該使用一些服務器端邏輯。正如其他人指出的那樣,你不能總是依靠客戶端時鐘。 – Alnitak 2013-02-14 16:56:43

相關問題