こんにちは、私は応募者としてプロジェクトを持っていて、ユーザーはデータを送信するためにさらに多くのタブを通過し、データの横に履歴書を追加しましたが、データがデータベースに挿入されると時間がかかり、ユーザーは何度もクリックする可能性があります。繰り返しデータの挿入につながります。
Ajax ローダーをポップアップとして使用することを提案しましたが、データが DB に挿入されるまでこのローダーを待機させる必要があるため、この問題の最適な解決策がわかりませんでした。
こんにちは、私は応募者としてプロジェクトを持っていて、ユーザーはデータを送信するためにさらに多くのタブを通過し、データの横に履歴書を追加しましたが、データがデータベースに挿入されると時間がかかり、ユーザーは何度もクリックする可能性があります。繰り返しデータの挿入につながります。
Ajax ローダーをポップアップとして使用することを提案しましたが、データが DB に挿入されるまでこのローダーを待機させる必要があるため、この問題の最適な解決策がわかりませんでした。
リクエストが現在実行されているかどうかを確認するために変数を設定する方法を示すこの SO 回答を確認してください。そうすれば、プロセスの実行中にクリック機能を一時的に無効にし、すべてが完了したら有効にすることができます。
編集
上記のリンクのjQueryコードを調整して、必要なことをどのように行うかを示しました。関数には、独自の実装を記入する必要があります。私はあなたのためにそれをすることができませんでした - 私はあなたの現在のコードの構造を知りません...
var requestRunning = false;
$('#save_link').live('click', function () {
if (requestRunning) { // don't do anything if an AJAX request is pending
return;
}
$(".save_link").text("Saving ...");
var ajaxOpts = {
type: "",
url: "",
dataType: "",
data: "",
success: function (data) {
// something to show the user a save is happening maybe?
},
complete: function() {
requestRunning = false;
}
};
requestRunning = true;
$.ajax(ajaxOpts);
return false;
});