[トピック内 6 記事 (1 - 6 表示)] << 0 >>
質問者さんが具体的に何をしたいのか不明ですが、待っていてもそれは分からなそうですので、 ASP.NET の timeout と処理の中断に関して書いておきます。 まず、timeout には httpRuntime 要素の executionTimeout 属性の設定というのがあり、デフ ォルトで 110 秒 になってます。詳しくは以下の記事を見てください。 httpRuntime 要素 (ASP.NET 設定スキーマ) https://docs.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/e1f13641(v=vs.100) How the Execution Timeout is managed in ASP.NET https://docs.microsoft.com/ja-jp/archive/blogs/pedram/how-the-execution-timeout-is-managed-in-asp-net ASP.NET Web Forms アプリで ScriptManager と UpdatePanel を用いて非同期ポストバックを 行っている場合は、PageRequestManager クラスの abortPostback メソッドで abort できます。 それを setTimeout で呼び出せばタイムアウトできると思います。例えば、以下の記事ではユー ザーがボタンクリック操作で AbortPostBack() を呼び出すようにしてますが、それを JavaScript の setTimeout で呼び出すとか。 二度押し防止 http://surferonwww.info/BlogEngine/post/2010/12/12/Cancel-request-using-PageRequestManager.aspx ajax を使って非同期要求をかけている場合も abort することで中断できます。例えば jQuery ajax には timeout というオプションがあって、それで任意の時間を設定できます。具体例は 下記。timeout は 5 秒に設定していて、それが過ぎても要求が返ってこない場合は fail に 設定したコールバックが動いて引数 textStatus には "timeout" という文字列が渡されます。 <script type="text/javascript"> $(function () { $("#btnSec").on("click", function () { $.ajax({ type: "get", url: "Handler1.ashx", timeout: 5000 }).done(function (data) { // ・・・成功したときに必要な処理(省略)・・・ }).fail(function (jqXHR, textStatus, errorThrown) { $("#Label1").text("処理できません - " + textStatus); }); }); }); </script> あとは、ブラウザの ✕ ボタンをクリックするとか Esc キーを押すとかして処理をキャンセル することもできます。MVC5 の例を書いた記事を紹介しておきます。 要求の中断による処理のキャンセル (MVC5) http://surferonwww.info/BlogEngine/post/2021/07/12/handling-aborted-request-in-aspnet-mvc5-application.aspx
管理者用
- Child Tree -