
1 chuck911 2011-12-29 20:59:22 +08:00 POST方法不具备幂等性! PUT方法在此又不适用 |
2 ofan OP ......不具备所以才要用幂等的设计 |
3 9hills 2011-12-29 21:23:10 +08:00 回复用ajax做就感觉好多了,现在回复还会刷新页面。。好古老的设计 |
4 delectate 2011-12-29 21:23:49 +08:00 试试…… |
5 delectate 2011-12-29 21:24:12 +08:00 木有效果啊。看来触发bug还要特殊环境的 |
8 gDD 2011-12-29 21:29:46 +08:00 可以考虑按`发送`以后按钮不可用10s左右。这样既能防止重复发帖又能防止POST失败以便再次POST。 |
10 9hills 2011-12-29 21:34:02 +08:00 用ajax一劳永逸,有想法的话,还能显示出一个进度条。 OT: 再慢的操作,只要有了进度条,就能给人一种很可靠的感觉。。。 |
11 ofan OP @gDD 这个方法最简单,但是有些情况不适用,比如客户端关闭了甚至不支持js的情况。这是有可能的,比如内嵌了html浏览器的桌面程序,手机上的浏览器,一些bot,一些下载工具(wget,aria..)等等 |
12 chuck911 2011-12-29 21:49:26 +08:00 |
13 cyberscorpio 2011-12-29 22:00:52 +08:00 @ofan 现在还有关 js 的? |
14 ofan OP @cyberscorpio 关js和不支持js的属于同一种情况 |
15 delectate 2011-12-29 22:03:25 +08:00 有。安了noscript。 |
16 ofan OP 还有用油猴的firefox党,什么都是有可能发生的 |
17 delectate 2011-12-29 22:06:46 +08:00 与其在客户端验证,不如服务器设限。同一id每5s只能提交一次。 |
18 gDD 2011-12-29 22:08:39 +08:00 @ofan 关了Javascript的话jQuery代码就不会运行了就`bind`不上按钮的`click`,然后基本发帖功能还是能用的,和目前的效果一样。 |
20 ofan OP 我的意思是说不用js的方法,主贴里给了链接了嘛,去看看. 可以每次页面get时,服务器返回一个ticketID,然后在回复时讲此id作为一个参数 ?tid=... ,这样服务器端添加完回复后要返回新的页面,里面再带一个新的ticketID,旧的ticketID失效。这样就保证每次只能回复一次 |
21 ofan OP 然后旧的id在一定时间后重新有效,比如一小时后.. |
22 delectate 2011-12-29 22:18:00 +08:00 记得phpbb论坛有个sid串号问题。就是说你发的链接如果带上sid=***的信息,别人(未登录)访问此链接,就会以发帖人权限登录论坛。 |
23 ofan OP 对,就这意思,这种技术web里应该用的非常多啊,不知道这里为嘛不用。重复回复的问题,我记得只有在asp流行的时代比较多 |
24 cyberscorpio 2011-12-29 22:37:52 +08:00 @ofan 我就是这个意思,关 js 的很少,不支持的几乎没有。 |
25 ofan OP @cyberscorpio 我已经列出不支持的情况了,特别是对于移动设备,能不用js的就不用js |