ボタンのクリックを遅らせることに問題があります。私はすでに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()" は、別のスクリプト用です。かなり忙しいボタンです。
つまり、Submit をクリックすると、ajax スクリプトがデータを post.php にプッシュし、post.php がデータをデータベースに送信します。同じ [送信] をクリックすると、プッシャー コードがトリガーされ、最終的に送信されたデータがデータベースから取り出され、接続されているすべてのユーザーにブロードキャストされます。
私が抱えている問題は、送信がデータをデータベースに送信し、データベースから同時にプルするプッシャーをトリガーすることです。75% の確率で、Submit がデータを送信する前に、プッシャー コードがデータベースからデータをプルしようとします。
考えられるあらゆる場所に setTimeout を配置しましたが、Pusher コードを遅らせることはできませんでした。助言がありますか?Submit AND Broadcast ボタンが遅れても問題ありません。[送信] をクリックすると AJAX コードまたは onclick=addMEM() が遅延する場合は問題ありません
これをとても複雑にして申し訳ありません。これは長いプロジェクトの最終ステップであり、これを機能させることができれば、ここからすべての CSS、データ入力、および数学になります。