2010-01-15 17 views
0

只是想知道背後的邏輯,允許用戶評論在網站上可以編輯幾分鐘,之後應該是可讀的。在linkedin網站上看到了這一點。 我的解決方案在評論提交期間使用創建會話並每3分鐘刷新一次,並檢查會話是否在14分鐘後通過ajax.let超時了,我知道你的解決方案。如何讓用戶評論可編輯幾分鐘,之後應該是可讀的

我需要知道實施的最佳解決方案。

+0

使用隨機令牌將是個好主意。 – 2010-01-15 14:26:27

回答

0

或者您可以使用長輪詢(請參閱Comet),並在服務器上追蹤時間。

利用類似上述解決方案的會話並不理想。

+0

我不清楚Comet部分。靈魂之間會在響應html中使用一個標記,並且它的創建時間將被添加到服務器。下一次當用戶點擊編輯鏈接時,令牌應與會話中的令牌匹配,並從當前時間獲得剩餘時間 - 存儲在會話中的時間。如果生成的分鐘數更多,則禁用編輯鏈接。這是最好的方法。 – 2010-01-15 13:40:38

1

爲什麼不在一定時間後拒絕改變?當發表評論時,存儲'changesExpire'日期(比如將來10米)。當您對超過'changesExpire'日期的評論進行更改時,您只需拒絕它們。

在界面上,你可以有一個簡單的倒數計時器。放上一個'編輯'按鈕,啓動定時器。當計時器關閉時,隱藏按鈕。

如果你離開頁面,沒什麼大不了的,這一切都會消失。如果你回來,創建一個新的計時器,設置爲「changesExpire」值中的剩餘時間。

沒有理由保持連接打開或任何東西在這裏。

+0

感謝您的回覆。但如果我可以破解JavaScript,就像去螢火蟲和更改計時器的值,它將允許edit.let我知道如果我錯了? – 2010-01-15 15:12:45

+0

只需在服務器端驗證即可。你已經將註釋時間戳存儲在數據庫中了嗎? JS不是爲了做一些業務邏輯,而是爲了增強用戶體驗。 – BalusC 2010-01-15 17:24:45

+0

總是應用一般規則 - 「客戶不能相信任何東西」。總是必須驗證服務器端的東西。 – 2010-01-16 18:17:16

相關問題