一部のデータの ajax 呼び出しがあります (jQuery を使用)。ユーザーが「送信」をクリックした後(およびajax呼び出しが送信された後)、リクエストが返されるまですべてを無効にする「お待ちください...」メッセージを表示しています(ユーザーがダブルクリックしたり、他のものをクリックしたりして混乱することはありません物事)。
何らかのエラーが発生した場合にうまく機能します。「お待ちください...」が消え、何が問題なのかをユーザーに表示しています。
しかし、通信エラーのためにサーバーから何も返されない場合はどうなりますか?
私が見つけた解決策は、「お待ちください..」メッセージに10秒のタイムアウトを設定することです。その後、メッセージは消えて表示され、「通信に失敗しました」というエラーが表示されます。サーバーが 10 秒後に応答しなかった場合、サーバーはまったく応答しないと思いますが、それは誤った仮定です。
問題は、サーバーが 20 秒後に何かを返さないことをどのように確認できるかということです。発生する可能性のあるシナリオは、ユーザーが送信をクリックすることです --> 10 秒後にエラー メッセージが表示されます --> 5 秒後にサーバーの応答が表示され、ユーザーが混乱します
「お待ちください..」メッセージを非表示にした後、サーバーから何も表示されないようにするにはどうすればよいですか?