私は単にフォームの送信を遅らせて、単なるフォームの送信ではなく、アクションが行われているという感覚をユーザーに提供しようとしています。以下にリンクされているjsfiddleは、私がやろうとしていることを正確に示しています(メッセージを提供したいクライアントで行われているアクションを除いて)。
一言で言えば、フォームの送信をN秒遅らせる方法としてsetTimeoutを使用することを考えました。
// display message indicating we're doing something
$("#container").html("<p>Processing...</p>");
setTimeout(function () {
// display message indicating we're ready to submit the form
$("#container").html("<p>Submitting...</p>");
// trigger form submit action
form.submit();
return true; // needed?
}, 2000);
ここでわかるように、「submiting...」メッセージと実際のフォーム送信トリガーをsetTimeout内にラップしています。これはすべて、より大きな$("#theForm").submit()
ラッパー内にあります。
これは完全に失敗する(ハングする)か、フォームが通過するがPOSTが失敗するある種の疑似「部分送信」を実行します。
私はこのアイデアと結婚していません...ユーザーエクスペリエンスの利益のためにフォームの送信を数秒間遅らせる別の方法がある場合は、知りたいです。
テストされたブラウザ:WindowsでのChrome、IE 8、FF12...これが私がATMにアクセスできるすべてです。