[問題] 如何避免因網速造成資料重複傳送?

看板Web_Design作者 (xopowo)時間9年前 (2014/08/28 16:04), 9年前編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
開發語言:asp.net C# Web form 開發工具:visual studio 2010 功能簡介: 資料表: [USER] | USER_SID | USER_ID | USER_NAME | [VALUE] | VALUE_SID | USER_ID | VALUE_VALUE | VALUE_DATE | 資料流程: 一個表格(grid view) 顯示欄位: | USER_NAME (Label) | VALUE_VALUE (TextBox)| 隱藏欄位: | USER_ID | VALUE_SID | 一個存檔鈕(Button),grid view以panel包著, Default Button為存檔鈕,在下面TextBox按下Enter可以觸發存檔 存檔時將有VALUE_SID的作update處理,無的作INSERT處理 以List<string> 將grid view row迴圈取值並建立: INSERT部分: USER_ID LIST、VALUE_VALUE LIST UPDATE部分: VALUE_SID、VALUE_VALUE LIST 在後端進行迴圈新增或更新 更新成功或失敗,以Message box顯示結果 問題: 使用者測試後發現連續按下Enter送出時資料會重複, 經分析發現為Insert處理要求連續送出造成, 改在存檔鈕事件裡第一行disable存檔鈕 但仍因網速使得第一行都沒有執行,就再次送出 再改成以javascript鎖定按鈕,js為local端處理應該無問題 開發端環境測試蓄意按下多次enter也無法「突破」js鎖定存檔鈕 但交由使用者測試後仍然造成資料重複 想請問是否有防止這種狀況下重複送出的做法呢? -- ※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1409213062.A.46A.html pm2001: 每次產生頁面的時候作一個只能用一次的token 08/28 16:22 好像是個辦法,來研究一下

08/28 19:00, , 1F
JS端黨應該就沒問題了 除非他媽的用512的RAM
08/28 19:00, 1F

08/28 19:00, , 2F
或者是你前端檔地方沒寫好
08/28 19:00, 2F
就...想不到問題在哪 整個畫面就是一個存檔鈕,以及PANEL內的default button(按下enter), 能夠觸發存檔事件的應該只有這個button的onclick event... 使用者網路環境好像是4M/1M,走VPN, 同時一個地方大概只有2~3人使用

08/28 19:13, , 3F
CSRF
08/28 19:13, 3F

08/28 19:13, , 4F
防範
08/28 19:13, 4F

08/28 19:14, , 5F
or 記錄一下你的 Code 看哪裡被觸發多次
08/28 19:14, 5F
也是個方法,感謝回應 ※ 編輯: ian90911 (182.235.161.52), 08/28/2014 20:05:47

09/05 23:41, , 6F
最後發現是臨時改的一個東西讓資料重複了 不是網速問題.
09/05 23:41, 6F
文章代碼(AID): #1J_kA6Hg (Web_Design)