2

フレームワークの Page.ClientScript.GetCallbackEventReference() メソッドを利用する ASP.NET 3.5 WebForm があり、一部の呼び出しを同期させたいと考えています。

現在、ドキュメントには、5 番目のパラメーター (以下を参照) がこれを制御していると書かれています。具体的には、「false」を渡すと、非同期呼び出しであると想定されます。ただし、それが true であるか false であるかに関係なく、呼び出しは非同期で処理されます。

Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context",false);

これに対する回避策はありますか、それとも何か間違っているのでしょうか?

4

2 に答える 2

0

For any other poor souls still using the MS AJAX library I found the following post:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/f4134c2e-ca04-423a-9da3-c613713a7b52/synchronous-callbacks-with-the-net-20-framework?forum=netfxjscript

MS ソースからの最後のコメントは次のように述べています。

これは実際には設計によるものです。ブラウザーの UI をブロックしないようにするために、このパラメーターは実際には要求を同期的に実行しませんが、要求がキューに入れられ、常に 1 つのみが処理されるようにします。効果はほぼ同じですが、エンドユーザーはリクエストの進行中にブラウザー UI を引き続き使用でき、サーバーが応答しない場合やネットワーク接続が切断された場合にプロセスを強制終了する必要はありません。

MSDN ページはこれを確認します:

コールバック シナリオでデータを同期的に送信する場合、同期コールバックはすぐに戻り、ブラウザーをブロックしません。2 つの同期コールバック コールバックをブラウザで同時に実行することはできません。1 つが現在保留されているときに 2 つ目の同期コールバックが起動された場合、2 つ目の同期コールバックは最初のコールバックをキャンセルし、2 つ目のコールバックのみが返されます。

于 2018-07-05T07:39:48.320 に答える