2010-10-12 25 views
0

我想使用jQuery Countown plugin讓我的用戶現在有多少時間已經離開了某個任務。使jQuery代碼對於不同的頁面是靜態的

所以我使用下面的代碼開始倒計時30分鐘。

<script type="text/javascript"> 
$(function() { 
$('#defaultCountdown').countdown({until: '+30m'}); 
}); 
</script> 

的問題是,用戶將被導航到不同勢給定任務的頁面,如果我只是包括所有網頁的代碼,定時器,將從30分鐘,每一個用戶進入時啓動一個新的頁面或刷新當前的頁面。我是jQuery的新手,所以我想知道是否有一種方法可以使此代碼成爲靜態的,以便在給定事件(在一個頁面中)之後啓動,並且在另一個頁面上的事件發生時停止並停止?

編輯:我應該提到,倒計時將只用於在受控環境中的可用性測試,以便應用程序將只能在一臺計算機上運行。

謝謝!

回答

2

客戶端解決方案:
而不是計算一個相對時間,計數到絕對時間並將其存儲在cookie中。
每個頁面都可以查找該值並啓動計時器。

+0

感謝您提供的很好且簡單的解決方案。 – woolagaroo 2010-10-12 07:42:41

1

,除非提供某些同步機制這是不可能的:

  • 每一頁傳遞給其他剩餘在查詢字符串的時間。初始化代碼需要修改,以便從接收到的參數開始倒計時。
  • 每頁都會記錄服務器中的剩餘時間。由於它需要服務器中的持久層,因此實現起來更加困難。

通常會發生的情況是在一個標籤頁/窗口中進行倒計時,並以新的方式打開其他頁面。您可以要求用戶不要關閉原始窗口。

+0

感謝您的回答!這就是我現在正在做的事情,以及......我在一個彈出式窗口中顯示倒計時,該窗口始終保持在最前面並在那裏運行腳本......我只是認爲將它包括進去會好很多實際的選項卡。 – woolagaroo 2010-10-12 07:23:23

1

我看到三種解決方案:
1)從服務器端給予開始時間。
2)使用AJAX加載其他頁面,所以頁面不會刷新
3)使用框架(最差的選擇)。