11

そのため、ユーザーがリンクを貼り付けると、サーバー側のコードが提供されたリンクをクロールし、そのリンクの内容 (ページ タイトル、説明、サムネイルなど) で応答する機能について考えています。

その間、ユーザーはリンクを変更できます。その際、ajax-request はクライアント側で中止する必要があります。

IIS サーバーで、具体的には私の C# コードで何が起こっているのか疑問に思っています。

  • 応答スレッドは終了していますか?
  • Response オブジェクトは null を返しますか、それとも Response.Write は例外をスローしますか?
  • どこにいても、応答スレッドで例外がスローされますか? (それは意味さえありませんが、何でも)
4

4 に答える 4

4

サーバー コードが の状態をチェックするResponse.IsClientConnected場合、クライアントが要求を中止したときに作業を停止して空の応答を生成することができます。それ以外の場合は、通常どおり要求を完了するだけです。

リクエストを待っている人がいないという理由だけで、リクエストの処理が自動的に中止されることはありません。サーバー コードは、リクエストの状態をアクティブにチェックする必要があります。

于 2012-07-05T18:28:25.093 に答える
2

Web サーバーは、クライアントがリクエストをキャンセルしたことを知りません。リクエストは引き続き実行され、レスポンスが返されます。作成するクライアント側スクリプトは、ページの現在の状態を処理できる必要があります。

レスポンスを気にしないことが確実な場合は、クライアント側でリクエストを中止することをお勧めします。

xhr.abort()
于 2012-07-05T18:17:58.653 に答える
0

応答が書き込まれる前にクライアント側の接続を閉じると、同じ量がスローされることを示すエラーが発生します。サーバーから返された応答を処理しないことを選択できます。

于 2012-07-05T18:19:10.790 に答える
0

要求がサーバーにポストされると、IIS はサーバー側コードの実行を開始します。これで、サーバーはコードを実行する必要があるかどうかを判断できます。

ページサイクル全体で、Guffa が述べたように Request.IsClientConnected を確認し、実行を終了できます。

しかし、はい、それはあなたが持っているシナリオに完全に依存します.

それが役に立てば幸い。

于 2012-07-05T18:39:05.543 に答える