asp.net ajaxサイトでサンプルのAutoCompleteExtenderを使用していますが、予期しない動作が発生しています。まず、asp.netサイトのサンプルが遅すぎると言いましょう。1秒のCompletionIntervalは、私の好みには長すぎます。そのため、300ミリ秒に下げると、これらの要求が中止されたメッセージが表示されます。Firebugは私にこれを示しています:
POST http://localhost:49539/AutoComplete.asmx/GetCompletionList Aborted
リクエストが中止されると、明らかに新しいリストの取得に失敗するため、オプションのリストが表示されないため、ユーザーエクスペリエンスが低下します。ゆっくり入力すると、リクエストは正常に処理され、オプションのリストが表示されます。ユーザーに最高のエクスペリエンスを提供するには、すべてのリクエストを完了する必要があるようですが、注意してください...
文字を入力してから100〜400ミリ秒以内にリストを常にポップアップさせるために私が何をする必要があるか知っている人はいますか?
注:IEとChromeはリクエストを中止していないようです。そのため、応答時間が大幅に短縮され、リストがすぐにポップアップ表示されます。これはまぐれであり、別のコンピューターでは動作が異なる可能性があります-わかりません。
また、注意:私のGetCompletionList()関数は非常に基本的であり、ハードコードされた値のみを返すため(DB要求はありません)、非常に高速です。
これがaspxです
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" autocomplete="off"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="TextBox1"
ServicePath="~/AutoComplete.asmx"
ServiceMethod="GetCompletionList"
MinimumPrefixLength="1"
CompletionInterval="200"
CompletionSetCount="12"
EnableCaching="true">
</ajaxToolkit:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>