2014-10-22 30 views
0

我創建了在線考試樣在我的應用程序的應用程序和不要復位超時上刷新

當啓動按鈕用戶點擊,我們要爲3:00分鐘,同時使用

顯示計時器setTimeout(func,3*60*1000)

但是當我刷新timout功能重置頁面,如何制止這種

在我的應用程序是如何做到這一點,這是一個必須具備的功能。

Javascript或jQuery的東西歡迎

+0

[jquery beforeunload when closing(not leaving)the page?]可能重複?](http://stackoverflow.com/questions/18783535/jquery-beforeunload-when-closing-not-leaving-the-page) – 2014-10-22 03:44:57

+0

Hope這篇文章會有幫助http://stackoverflow.com/questions/3121929/countdown-timer-with-cookies http://stackoverflow.com/questions/13412153/countdown-timer-that-doesnt-reset-when-你刷新頁面 – 2014-10-22 03:46:12

回答

0

如果你需要在一個萬無一失的方法是,用戶不能亂動,你必須設置定時器服務器端來實現這一目標。

如果不是很重要,那麼您可以將啓動時間存儲在localStorage中,並且在頁面加載時使用該值從其開始位置恢復定時器。

var oldStartTime = localStorage.getItem('startTime'); 
var startTime = oldStartTime ? new Date(oldStartTime) : new Date(); 
localStorage.setItem('startTime', startTime); 

// you can now use startTime to determine the remaining duration for setTimeout: 

var elapsed = new Date() - startTime; 
var duration = 180000 - elapsed; 

setTimeout(myFunction, duration); 

既然你說這是一個考試,但我認爲你希望人們不能作弊。如果是這種情況,那麼單單用客戶端Javascript完全沒有辦法做到這一點。用戶總是可以在自己的瀏覽器中「篡改」它。

+0

http://keith-wood.name/countdown.html,這看起來很簡單,這個插件是否存在任何問題 – user1934044 2014-10-22 04:09:55

+0

這個jQuery插件是用於將HTML倒計時到指定的時間。它沒有「重置」的唯一原因是因爲它倒計時到一個特定的時刻;它不像秒錶。如果你的學生將在不同的時間開始測試,你仍然需要存儲開始時間。 – Semicolon 2014-10-22 04:13:04

+0

明白了,感謝您的解釋 – user1934044 2014-10-22 04:19:01