如何在PHP和JavaScript中实现临时可撤销的操作?

如何在PHP和JavaScript中实现临时可撤销的操作?,php,architecture,session,delayed-job,Php,Architecture,Session,Delayed Job,我希望在用户完成操作后的短时间内实现可撤消的操作。也就是说,如果用户在照片网站中对照片进行升级投票,他/她可以在30秒内撤销投票。这与StackOverflow的投票方式类似,您可以在短时间内撤消投票 我应该如何实施它?我想,出于性能原因,我不应该在延迟超时之前将投票提交到数据库。用JavaScript很难做到这一点,因为如果用户在延迟超时之前更改网站,那么投票就会失败。也许我可以在cookies中完成,或者最好的解决方案是在PHP会话中完成,但是在延迟之后如何提交操作呢?我建议是的,将带有时间

我希望在用户完成操作后的短时间内实现可撤消的操作。也就是说,如果用户在照片网站中对照片进行升级投票,他/她可以在30秒内撤销投票。这与StackOverflow的投票方式类似,您可以在短时间内撤消投票


我应该如何实施它?我想,出于性能原因,我不应该在延迟超时之前将投票提交到数据库。用JavaScript很难做到这一点,因为如果用户在延迟超时之前更改网站,那么投票就会失败。也许我可以在cookies中完成,或者最好的解决方案是在PHP会话中完成,但是在延迟之后如何提交操作呢?

我建议是的,将带有时间戳的投票提交到数据库中。这是一个干净而简单的解决方案。如果您遇到性能问题,那么您可以使用内存中的数据库(如sqlite)作为投票数据层的辅助后端。

我建议是,将带有时间戳的投票提交到数据库中。这是一个干净而简单的解决方案。如果您遇到性能问题,那么可以使用内存中的数据库(如sqlite)作为投票数据层的辅助后端。

我支持这一点。大多数事情可能不会被撤销,即使所有事情都被撤销了,那也只是完全没有撤销的负载的2倍。谢谢你的建议。所以你建议我对撤销做一个删除查询,就这样。还可以通过JavaScript和删除查询的WHERE部分检查时间戳。嗯,这可能是一个有效的解决方案。我支持这个。大多数事情可能不会被撤销,即使所有事情都被撤销了,那也只是完全没有撤销的负载的2倍。谢谢你的建议。所以你建议我对撤销做一个删除查询,就这样。还可以通过JavaScript和删除查询的WHERE部分检查时间戳。嗯,这可能是一个有效的解决办法。