php - PHP Ajax 等待函数完成,然后用户才能再次调用它
问题描述
我所拥有的是:
用户在他的帐户上有 100 点。该函数将从他的余额中减去 10 分。然后这 10 点将分配给另一个用户。
问题是,如果用户向按钮发送垃圾邮件 11 次,即使余额为 0,其他用户仍然会获得 +10 分。这是因为该函数一次执行多次。
所以我基本上和这个问题有同样的问题,但我必须在服务器端处理它。 等待功能完成后再重新开始
示例代码:
function subtract() {
$.ajax({
type: 'POST',
url: 'verify.php',
data: {
'token':token
},
complete: function(r) {
var success = r.responseText;
}
});
}
验证.php
$getCurrentBalance; //Points from Database
$subtract = $getCurrentBalance - 10;
updateBalance(); //Update the users balance with subtracted Points
所以一切都很好,但我必须在服务器端检查函数是否已经完成,然后用户才能再次调用它。
解决方案
您可以将其视为评论,但我强烈想指出,客户端解决方案的建议不应该是解决问题的好方法,因为客户端不能也不应该被信任。
解决它的一种方法可能是在交易进行时“锁定”帐户。锁可以由一个布尔值组成;例如,未锁定为 true,锁定为 false。锁本身应该在数据库表本身中。从您的编程中,您可以使用 css“停用”按钮。这样一来,您就涵盖了外观和功能。
推荐阅读
- apache-tika - 如何从pdf文件中的图像中提取文本?
- azure - 未正确检索存储帐户实体的指标
- android - Android 房间数据库创建 - 回调
- ruby - 在某些条件下将值插入数组
- ms-access - 访问 VBA:按顺序索引选择列
- javascript - 如何在鼠标单击时禁用浏览器重新加载按钮
- sql - 如何使用单个 SQL 命令插入数据和删除重复行
- python - cx_Freeze 为 wxpython 脚本生成的 msi 导致 ImportError: DLL load failed
- mysql - 大表的mysql性能问题
- wordpress - 是否可以阻止像 Adobe Acrobat 这样的 Chrome 扩展程序?