2016-03-15 53 views
0

我試圖做一個小的倒計時腳本。倒計時秒,僅在更新我的數據庫,當它到達0,並重新開始倒計時過程秒更新數據庫和循環倒計時

例子:

HTML

<p>Updating your profile in <span class="countdown"></span> seconds.</p> 

我所需要的配置文件的每個780秒進行更新,一旦倒數到0它使一個Ajax調用更新的姿態和倒計時重置再次重複。

而且我已經tryed一些倒計時腳本,但用戶可以改變瀏覽器的腳本,是爲了保護用戶,從改變代碼的網站的任何可能性?

感謝

+0

您可以再壓縮和醜化您的JS使其難以閱讀和理解,但因爲它是在客戶端上運行,沒有安全可靠的方式,以防止用戶更改密碼。 – dgig

+0

有沒有辦法做這個服務器端? – TiagoF

+0

不是因爲您無法知道用戶是否仍在您的網頁上(即使您至少使用了PHP)。這是什麼目的?安全? – dgig

回答

0

林使我的一個朋友說,流的網站,他希望 給HES觀衆穴每次可以說780秒(10分鐘),使他們 可以花他們獲得贈品。 ..所以我需要的腳本來開始頁面加載一個 倒計時,每780秒repete和更新 數據庫..

這更是一個安全問題,在我看來。您想知道如何安全地跟蹤客戶端上的定時事件。

您遇到一些問題:任何知道如何更改代碼以更頻繁地進行AJAX調用(從而給予更多點數)的人,因此客戶端不可行,但您也無法跟蹤用戶與頁面的交互通過服務器端代碼。

所以我認爲你想要的是兩者的結合。你想在客戶端定期調用ajax,但你想根據服務器端的一些代碼來驗證時間 - 你可能想發送AJAX調用,但是通過檢查會話或者cookie的ID來驗證時間和用戶身份。

+0

我只是不希望用戶編輯腳本的秒,因爲他們不能真正直接更新任何東西,因爲更新頁面只接受ajax請求..所以我只需要確保最終用戶無法編輯780秒,讓說10秒.. – TiagoF

+0

這是我的觀點,你不能。但是你可以做的是跟蹤用戶和服務器端的時間,這樣當AJAX呼叫進入時,你可以說「這個呼叫發生得太快了,無視它,並且沒有任何分數」。 – dgig

0

在做數據庫更新添加時間戳到它,然後當你做其他任何電話覈對時間戳,看看是否780秒已經過去了。

如果時間超過780然後做數據庫更新如果沒有,不要做任何事情。

+0

哦,這是一個好主意,即時通訊使用laravel,所以總有一個timsestamp可用。謝謝,但我吸吮的JavaScript,不能弄清楚如何做腳本:頁 – TiagoF