提交ajax表单时如何防止多次插入

时间:2011-09-30 11:29:30

标签: ajax forms form-submit

在这个问题上,有更多人绊倒了,而对于非ajax场景,已经有了解决方案: How to prevent multiple inserts when submitting a form in PHP?

(2010年1月25日17:02回答)

我想知道如何在服务器和客户端上有效实施类似的解决方案来解决以下问题:

  • 有一个墙上的列表,其中包含多个项目,用户可以在这些项目上单击启用了ajax的“我喜欢”按钮(无页面重新加载)
  • 用户可以打开多个浏览器窗口,点击“我喜欢”按钮

预期: 只有第一次点击任何一个墙上项目的“我喜欢”按钮才会考虑在服务器端,并且不再处理以下墙上项目请求。

2 个答案:

答案 0 :(得分:0)

跟踪服务器端上每个用户的喜欢项目(例如额外的数据库表)。当要插入新的like时,检查此表中是否已有现有记录。如果有,用户已经喜欢这个项目,你不必再计算它了。

答案 1 :(得分:0)

我认为最好的方法是使用存储当前状态的会话变量,即当有人点击你“我喜欢”时,在服务器端,你检查SESSION var的状态。