C# AutoCompleteXtender非常慢

C# AutoCompleteXtender非常慢,c#,performance,autocompleteextender,C#,Performance,Autocompleteextender,我在评论中问了这个问题,但我不认为我应该在评论第一个问题时再问第二个问题。我有AutoCompleteXtender,速度非常慢。。获取列表以填充AutoCompleteXtender的方法必须每次从API获取和查询XML。问题是我的方法,在这个方法中,我无法访问同一页面上静态方法中的SessonState、Cookie,甚至变量,因此我看不到每次都可以获取和查询的替代方法。这是缓慢的,但真的不值得拥有。必须有另一种方法(可能不使用AJAX工具包)才能让它快速运行 [System.Web.Scr

我在评论中问了这个问题,但我不认为我应该在评论第一个问题时再问第二个问题。我有AutoCompleteXtender,速度非常慢。。获取列表以填充AutoCompleteXtender的方法必须每次从API获取和查询XML。问题是我的方法,在这个方法中,我无法访问同一页面上静态方法中的SessonState、Cookie,甚至变量,因此我看不到每次都可以获取和查询的替代方法。这是缓慢的,但真的不值得拥有。必须有另一种方法(可能不使用AJAX工具包)才能让它快速运行

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetNames(string prefixText, int count)
 {
    //Code Here Takes long
 }
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
公共静态列表GetNames(字符串前缀,int计数)
{
//这里的代码需要很长时间
}

编辑CompletionInterval、CompletionSetCount和MinimumPerfixLength几乎什么都没有


这似乎是一个非常常见的问题—AJAX TextBoxCompleteXtender速度非常慢,因为它每次都查询数据—如果其他人遇到此问题,它有一个非常棒的开源解决方案。

编辑CompletionInterval、CompletionSetCount和MinimumPerfixLength几乎什么都没有


这似乎是一个非常常见的问题—AJAX TextBoxCompleteXtender速度非常慢,因为它每次都查询数据—如果有人遇到此问题,它有一个非常棒的开源解决方案。

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

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

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

  • 客户端:客户端最大的因素之一是
    CompletionInterval
    属性。VisualStudio设置的默认值是1000毫秒。我将其更改为10,速度大大加快

  • 在我的例子中,瓶颈在于控件配置本身;我的服务器端已经很快了,因为我使用了用于快速后端数据查找和检索的。
    我还返回了一个小的记录数组,打开了客户端缓存。最大的因素是
    CompletionInterval

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

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

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

  • 客户端:客户端最大的因素之一是
    CompletionInterval
    属性。VisualStudio设置的默认值是1000毫秒。我将其更改为10,速度大大加快

  • 在我的例子中,瓶颈在于控件配置本身;我的服务器端已经很快了,因为我使用了用于快速后端数据查找和检索的。
    我还返回了一个小的记录数组,打开了客户端缓存。最大的因素是
    CompletionInterval

    您是否在扩展器
    CompletionInterval
    CompletionSetCount
    MinimumPrefixLength
    上使用过以下任何属性。如果您在扩展器
    CompletionInterval
    CompletionSetCount
    MinimumPrefixLength
    上使用了以下任何属性,或许您可以找到合适的平衡点,使其可用。也许你可以找到合适的平衡点,使其可用。你可以编辑以解决以下问题吗?#1:你是否试图建议使用模拟方法来提供预计算输入#2:尝试与问题的相关性是什么?“返回小记录数组”是什么意思?请编辑以解决以下问题-#1:您是否试图建议使用模拟方法来提供预计算输入#2:尝试与问题的相关性是什么?“返回小数组记录”是什么意思?