2011-01-22 11 views
1

私は5秒から10分の間にかかるjavascriptを介して静的なページメソッドを呼び出しています。私は、ユーザに要求の完了を待つか、window.setTimeout()を使用して30秒ごとにチェックを戻すかを選択できるようにしたいと思います。完了するまでPageMethodブロックを呼び出します。クライアントまたはサーバー側のリダイレクトを防ぎます

私は、pageメソッドの完了前にユーザーをリダイレクトするために、location.href = '/newpage.aspx'またはボタンのクリックハンドラ(同様のリダイレクトを実行します)を起動してみました。 I はすぐにユーザーをシンプルなHTMLページに送信しますが、サーバー側を含むaspxページへのリダイレクトはブロックされているようです。ページメソッドが最後に完了すると、リダイレクトは成功します。

  • ブラウザの問題:

    は、このですか?現代のブラウザ がすべてドメインあたり2個以上の同時リクエストをサポートしている場合は、 はなぜ動作しませんか?

  • フレームワーク 制限はありますか?
  • 望ましいデザイン パターンまたは可能ですか? がチェックされ、 HTMLページにリダイレクトされた後、元のリクエストは処理を続行します(dbアップデート、問題ありません)。

Pageメソッドの呼び出しは、「同時HTTPリクエスト」の観点から単純に非同期ではありませんか?

洞察力が大いにありがとう!

+0

何が原因で非同期であると思われましたか? –

+0

ページメソッドは確かに非同期です。すべての目的と目的で、ASMX ScriptService WebMethodと同じですが、EnableSessionがfalseの代わりにデフォルトでtrueに設定されています。 –

+1

@ジョン:私はそれらが非同期になるようにしました。コントロールはページメソッドを呼び出すクライアント側のjsにただちに返されますが、多分あなたは何かをしています。サーバーサイドのコードから標準のポストバック中にページメソッドを呼び出す場合、メソッドは必ず書かれたように非同期ではありません。 – traverjc

答えて

0

InProcセッションでブロックされているようですが、セッションごとに1つの同時リクエストに制限されています。ページメソッドでセッションにアクセスする必要がない場合は、WebMethod属性を変更してセッションを無効にすることができます。

[System.Web.Services.WebMethod(EnableSession=false)] 
+0

ありがとうDave ...私は無駄にこれを試みた。リダイレクトは、PageMethodの呼び出しが完了するのを待ってブロックします。 – traverjc

+0

IISまたは開発サーバーだけで試しましたか? –

+0

はい、私はIIS上でそれを実行しています – traverjc

関連する問題