我在延迟单击按钮时遇到问题。我已经通过 stackoverflow 进行了搜索,并找到了几个答案,使用 setTimeout 很容易,但我无法让它在我正在处理的工作中发挥作用。这是代码示例:
AJAX 在提交按钮单击时将数据提交到数据库
<script>
$(function () {
$('form').on('submit', function (e) {
$.ajax({
type: 'post',
url: 'post.php',
data: $('form').serialize(),
});
e.preventDefault();
});
});
</script>
推送代码
<script>
$(function() {
var pusher = new Pusher('pusher')
var activityChannel = pusher.subscribe('stream');
var activityMonitor = new PusherActivityStreamer(activityChannel, "#current");
var examples = new ExampleActivities(activityMonitor, pusher);
$("#broadcast").click(function(){
activityMonitor.sendActivity('broadcast');
});
$("#submit").click(function(){
activityMonitor.sendActivity('submit');
});
});
</script>
HTML 按钮
<input id="submit" name="submit" type="submit" value="Submit" onclick="addMEM()"><br>
<button id="broadcast">Broadcast</button>
提交按钮上的 onclick="addMEM()" 用于另一个脚本。这是一个非常繁忙的按钮。
所以发生的事情是我单击提交,ajax 脚本将数据推送到 post.php,然后将其提交到数据库。使用相同的提交单击触发推送器代码,最终将提交的数据从数据库中拉回并将其广播给所有连接的人。
我遇到的问题是 Submit 将数据提交到数据库并触发同时从数据库中提取的 Pusher。75% 的时间,推送代码在提交提交之前尝试从数据库中提取数据。
我把 setTimeout 放在我能想到的任何地方,只是不能延迟 Pusher 代码。有什么建议么?如果 Submit AND Broadcast 按钮有延迟也没关系。如果单击提交延迟 AJAX 代码或 onclick=addMEM() 是不行的
很抱歉让这件事变得如此复杂。这是一个长期项目的最后一步,如果我能完成这项工作,那么所有的 CSS、数据输入和数学都是从这里开始的。