自动完成扩展器非常慢

本文关键字:非常 扩展器 | 更新日期: 2023-09-27 18:33:19

我在评论中问了这个问题,但我认为我不应该问第二个问题来评论第一个问题。 我有自动完成扩展器,它非常慢。 让我的列表填充自动完成扩展器的方法必须每次都从 API 获取和查询 XML。 问题是我的方法,在此方法内部我无法访问SessonState,Cookie,甚至同一页面上静态方法的变量,因此每次我都看不到GET和Query的替代品。 虽然这很慢,但真的不值得拥有。 必须有另一种方法(也许不使用 AJAX 工具包(才能使其快速运行。

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetNames(string prefixText, int count)
 {
    //Code Here Takes long
 }

自动完成扩展器非常慢

Editing CompletionInterval 、CompletionSetCount 和 MinimumPerfixLength 几乎什么都不做。

看起来这是一个非常普遍的问题 - AJAX TextboxCompleteExtender 非常慢,因为它每次都查询数据 - CodePlex 有一个很棒的开源解决方案来解决这个问题,如果其他人遇到它。

在进入任何特定解决方案之前,您需要弄清楚您的性能瓶颈在哪里。这将帮助您在何处进行更改/修复以增加查找。

您需要检查两面(假设您有快速连接(:

  1. 服务器端:确保您的服务器快速回拨。尝试返回一小组字符串(不执行任何后端数据检索(。如果性能显著提高,则意味着您的服务/数据层代码存在问题,您需要优化其性能。

  2. 客户端
  3. :客户端的最大因素之一是CompletionInterval属性。Visual Studio 设置的默认值为 1000 毫秒。我把它改成 10,它变得快多了。

就我而言,瓶颈在于控制配置本身;我的服务器端已经很快了,因为我使用 trie 结构进行快速后端数据查找和检索。我还返回了一小组记录,打开了客户端缓存。不过最大的因素是CompletionInterval