我正在使用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>
答案 0 :(得分:0)
由于现在几周没有人回答我的问题,我会试一试。
我不是100%确定这是我的问题,但我倾向于认为它是由visual studio附带的网络服务器引起的。我在另一个项目中遇到了类似的问题但它托管在本地IIS服务器上(更改Web选项卡下的项目属性),请求不会中止。
我不能100%肯定的原因是该项目使用了一个jquery库,当使用Web服务器内置的visual studio时,它正在获取中止请求,但在使用本地IIS服务器时却不是这样。