私は現在、いくつかのAjaxコードで遊んでいます。私はこのシナリオを試してみて、あなたの専門家が解決策を提示できるかどうかを確認するために問題をミラーリングします。ありがとうございます。AjaxとJavaScript |ユーザーによってトリガーされたリクエストを制限する
シナリオ:<p onclick="ajax_call();">Click</p>
:
私はそうのようなHTMLのボタンを持っています。これは、その後php_script
ファイルにいくつかのPHPコードを実行し
function ajax_launch(){
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = ajax_launch_callback;
xmlhttp.open("POST", "/php_script", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
}
function ajax_launch_callback(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
// code to do something once response is here successfulyl
}
}
をして$output
問題返します:このボタンをクリックすると、それはこのようにPHPのページにAJAX要求を起動します
をAJAX経由で呼び出されるphp_script
ページは静かで重く、いくつかのAPIとデータベース呼び出しによってページが読み込まれるのが「遅い」(これは完璧です)。しかし、現時点では、ページが応答を待っている間(まだPHPを実行していて、何も返されていない)、ユーザーは技術的にボタンをスパムして多くのajax呼び出しを開始できます。理想的には、これは単にサーバーに負荷をかけるだけで、要求が保留され、戻ってこないと、それ以上の要求はできません。
どうすればこのようにすることができますか?あなたのソリューションを楽しみにして事前に
おかげで、/相談ALSO
:複数の要求によって
、これは私が何を意味するかである - 私はいくつかの要求を起動するボタンをクリックしてスパムときの写真を見ます最初のものは行われていない一方で(まだ何も返されません):
Image of chrome debugger (networks tab)
が
http://stackoverflow.com/questions/10276784/jquery-limit-the-number-of-simultaneous-ajax-requests。最後の2人の回答を確認してください –
リクエストの進行中に、ロードアイコン付きのボタンをマスクしてください。ユーザーに何かが起こっていることを知らせる – charlietfl
私はこれを行う最善の方法はPHPでチェックをすることです。 – 0x58