5

C# で記述された IIS7 経由で IHttphandler を要求するオートコンプリート テキスト ボックスがあります。

しかし、Web サーバーに到達するリクエストは順不同で到着するようです。

「guidolin」と入力した後に IHttpHandler から取得したログの例を次に示します。

406302 2010-11-24 12:33:58,448 [8256] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:guidoli RequestTime:24/11/2010 12:33:58(396)
406418 2010-11-24 12:33:58,564 [8256] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:guidolin RequestTime:24/11/2010 12:33:58(507) 
407751 2010-11-24 12:33:59,897 [8256] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:gu RequestTime:24/11/2010 12:33:58(685) 
408008 2010-11-24 12:34:00,154 [8256] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:guid RequestTime:24/11/2010 12:34:00(56) 
408167 2010-11-24 12:34:00,313 [8000] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:guido RequestTime:24/11/2010 12:34:00(244) 
408562 2010-11-24 12:34:00,708 [5912] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:gui RequestTime:24/11/2010 12:34:00(368) 
408832 2010-11-24 12:34:00,978 [8000] DEBUG Services.jQueryHandler  - VALID jQueryHandler request data:guidol RequestTime:24/11/2010 12:34:00(946) 

したがって、明らかに、リクエストは正しい順序で到着しません。すでにこの問題に直面している人はいますか、それとも回避策を知っていますか?

オートコンプリートの jQuery コードは次のとおりです。

textBox.autocomplete({
  source: textBox.attr("data-handler-url"),
  select: function (event, ui) {
    textBox.next("input[type='hidden']").val(ui.item.objectId);
    textBox.data('selected-value', ui.item.value);
  }
});
4

1 に答える 1

0

これは HTTP であり、定義上はステートレスプロトコルです。HTTP には「順序」の概念はありません。すべては要求メッセージから始まります。リクエストに論理的な順序があることを期待または要求するような方法でアプリケーションをコーディングすることはできません。結局のところ、要求を送信することを選択しているのはクライアントです。それらが到着する物理的な順序のみが重要です。

あなたの例では、クライアントがタイプしなかったと誰が言い、guidolinそれをに変更しguますか?

あなたの質問に答えるために、この問題は問題ではないため、回避策はありません。可能であれば、これらのメッセージが到着する「順序」を気にしないようにアプリケーションをプログラムします。

于 2012-11-10T05:16:24.643 に答える