以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] 请教老师,在移动开发,如何避免重复提交或网页刷新造成的重复提交? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98532) |
-- 作者:rambowhuang -- 发布时间:2017/3/31 13:48:00 -- [求助] 请教老师,在移动开发,如何避免重复提交或网页刷新造成的重复提交? 请问老师,之前学习的都是使用所谓 token来比对控制,不知道?在Foxtable的移动开发是否有便捷的控制方法呢? 我在移动开发中的关联表单,明细部分经过编辑或新增,浏览器F5刷新就会一直自动新增, Case "edit.htm" If e.PostValues.Count > 0 Then Functions.Execute("Save",e) \'保存表单数据 End If Functions.Execute("Edit",e) \'生成订单编辑页面 |
-- 作者:有点色 -- 发布时间:2017/3/31 14:28:00 -- 加一个编号字段,如果提交的编号之前已经提交过,就不做处理
http://www.foxtable.com/mobilehelp/scr/0127.htm
|
-- 作者:rambowhuang -- 发布时间:2017/3/31 15:12:00 -- 谢谢,有点色老师 我暂时在新增明细的 form 加了 .AddHiddenValue("newid",format(now(),"HHnnss")) 并在 Save函数中加上 Static newid As String \'通过这个Static变量可以访问上一次生成的newid,避免重复 只要有时差,暂时可以避免浏览器F5刷新的重复提交了。 |
-- 作者:有点色 -- 发布时间:2017/3/31 15:23:00 -- 3楼这样做不正确。要用cookie存放才行
Dim d As Date = format(now(),"HHnnss") .AddHiddenValue("newid", d)
如果进来提交了,就设置 If e.cookies("newid") = nothing then e.Appendcookie("newid", e.values("newid")) Else if e.cookies("newid") = e.values("newid") Then \'你这里可以用差值,比如不允许1秒内的提交 End If |