-1

1秒あたりのメッセージ送信を適切に制限する方法に関するヒントを探しています。ユーザーがボタンを押したときに処理するためにデータをPHPファイルに送信するajaxリクエストがあります。ユーザーが1秒間に送信ボタンを押すことができる回数を一定の回数に制限したいと思います。これにより、1秒あたり3メッセージ以下が効果的に許可されます。どうすればこれを成し遂げられるのかよくわかりませんが、何か提案はありますか?

4

3 に答える 3

0

ボタンクリックイベントにタイマーを設定するだけで、最初にボタンを無効にし、一定時間後に再度有効にすることができます。

$('.myButton').click(function() {
    ...
    $(this).attr('disabled','disabled');
    setTimeout(function() {
        $(this).removeAttr('disabled');
    }, 2000);
})
于 2013-02-13T20:51:32.727 に答える
0

クリック後にボタンを無効にし、setTimeout()しばらくしてから再び有効にするために使用できます。

$('#myButton').click(function() {
    $(this).attr('disabled', 'disabled');
    setTimeout(function() {
      $('#myButton').removeAttr('disabled');
    }, 1000);
}
于 2013-02-13T20:53:17.060 に答える
0

ユーザーが1秒間に送信ボタンを押すことができる回数を特定の量に制限したい

それは簡単です。リクエストがアクティブな間は無効にし、一定の時間が経過した後に有効にします。ただし、「ボタンをクリックする」は「サーバーに送信されるリクエスト」と同じではないことに注意する必要があります。サーバー側のロジックも必要です。

$('#theButton').click(function() {
    var button = this,
        ratelimit = true,
        ajaxrunning = true;
    button.disabled = true;
    setTimeout(function() {
        ratelimit = false;
        if (!ajaxrunning)
            button.disabled = false;
    }, 5000);
    $.ajax(…).always(function() {
        ajaxrunning = false;
        if (!timeout)
            button.disabled = false;
    });
}
于 2013-02-13T21:01:20.397 に答える