我遇到的是通過ajax方式提交,所以還停留在本頁面,但是回饋沒做好,總之用戶沒感知到,還會(huì)繼續(xù)點(diǎn)擊發(fā)送按鈕,結(jié)果一下就出現(xiàn)了好多條嗯,大概說說自己的想法,希望能得大家的指點(diǎn):前端:前端的話,當(dāng)表單提交,這時(shí)候按鈕變成disable狀態(tài)后端:生成一個(gè)token放在表單的隱藏字段里,服務(wù)器端保留,并等待帶用戶提交時(shí)對(duì)照令牌我的問題是:1.在真正的應(yīng)用環(huán)境里,一般這種情況只做前端或者后端的處理是不是足夠2.如果要生成令牌的話,保存在哪里合適,session或者數(shù)據(jù)庫里,當(dāng)然session可能本身就在內(nèi)存里不是文件3.保存多少條合適,會(huì)不會(huì)有用戶開來了無數(shù)的頁面造成數(shù)據(jù)過量...可能是惡意用戶4.也許這也涉及到令牌保存多長時(shí)間,比如寫一篇文章的時(shí)間和回復(fù)一篇文章的時(shí)間也不一樣,是不是需要考慮5.這里令牌的生成有沒有特殊講究謝謝大家了啦~!問題還算有一般性吧,不過我用的環(huán)境是php apache mysql
1 回答

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
我們知道每個(gè)用戶在訪問的時(shí)候session_id都不同,可以以這個(gè)session_id作為key,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的鎖機(jī)制。
例如,MySQL 的內(nèi)存表,設(shè)置某個(gè)字段的索引為唯一的,用戶提交表單就先寫一條記錄(鎖),如果沖突則表示重復(fù)提交。提交后處理完成后,則刪除這條記錄。缺點(diǎn)是需要額外的一個(gè)守護(hù)進(jìn)程,刪除那些由于意外沒有被刪掉的鎖,當(dāng)然也可以加個(gè)時(shí)間戳字段,比如超過30秒就當(dāng)做鎖已經(jīng)失效。
除了 MySQL 的內(nèi)存表,redis 也適合實(shí)現(xiàn)這樣的簡(jiǎn)單的鎖機(jī)制,這可以通過 redis 的事務(wù)機(jī)制來實(shí)現(xiàn)的。
添加回答
舉報(bào)
0/150
提交
取消