Linq 为什么自动完成扩展程序在ASP.NET中运行得非常慢

Linq 为什么自动完成扩展程序在ASP.NET中运行得非常慢,linq,web-services,ajaxcontroltoolkit,autocompleteextender,toolkitscriptmanager,Linq,Web Services,Ajaxcontroltoolkit,Autocompleteextender,Toolkitscriptmanager,固定: 缺少属性CompletionInterval=“0” 我正在测试ajax自动完成扩展程序和Web服务的功能。并发现自动完成扩展器需要一段时间来获取数据和显示。我现在没有数据库连接或类似的东西。我只是将所有项放在webservice函数的一个数组中,并使用LINQ返回匹配的项集。显示数据的间隙约为1秒。我试着打开/关闭EnableCaching,我发现有人在博客上建议了这一点,但与Google如何搜索数十亿数据并在数十亿用户的实时网站上返回结果相比,它仍然非常缓慢,没有一秒钟的延迟 虽然G

固定: 缺少属性CompletionInterval=“0”

我正在测试ajax自动完成扩展程序和Web服务的功能。并发现自动完成扩展器需要一段时间来获取数据和显示。我现在没有数据库连接或类似的东西。我只是将所有项放在webservice函数的一个数组中,并使用LINQ返回匹配的项集。显示数据的间隙约为1秒。我试着打开/关闭EnableCaching,我发现有人在博客上建议了这一点,但与Google如何搜索数十亿数据并在数十亿用户的实时网站上返回结果相比,它仍然非常缓慢,没有一秒钟的延迟

虽然Google不会使用asp.net、Linq或脚本管理器来做Ajax工作,但我只是在本地计算机上测试,没有数据库连接,我想一定有办法让它工作得更快。也许我没能在某个地方设置环境。这是我的密码

aspx



代码上没有任何内容

下面是webservice的代码

    <System.Web.Script.Services.ScriptService()> _
    <WebService(Namespace:="http://tempuri.org/")> _
    <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Public Class WebService
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function HelloWorld(prefixText As String) As String()

    Dim str() As String = {"Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan",
                            "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei",
                            "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Central African Republic",
                            "Chad", "Chile", "China", "Colombi", "Comoros", "Congo (Brazzaville)", "Congo", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus",
                            "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor Timur)", "Ecuador", "Egypt", "El Salvador",
                            "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia, The", "Georgia", "Germany", "Ghana",
                            "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia",
                            "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, North",
                            "Korea, South", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania",
                            "Luxembourg", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius",
                            "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepa", "Netherlands",
                            "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay",
                            "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russia", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent",
                            "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia and Montenegro", "Seychelles", "Sierra Leone", "Singapore",
                            "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "Spain", "Sri Lanka", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland",
                            "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda",
                            "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Vanuatu", "Vatican City", "Venezuela", "Vietnam",
                            "Yemen", "Zambia", "Zimbabwe"}

    Dim result As ArrayList = Nothing

    Dim query = From x In str
                Where x.ToLower.Contains(prefixText)
                Select x

    Return query.ToArray

    End Function

    End Class
_
_
_
_
公共类Web服务
继承System.Web.Services.WebService
_
公共函数HelloWorld(前缀文本作为字符串)作为字符串()
Dim str()作为字符串={“阿富汗”、“阿尔巴尼亚”、“阿尔及利亚”、“安道尔”、“安哥拉”、“安提瓜和巴布达”、“阿根廷”、“亚美尼亚”、“澳大利亚”、“奥地利”、“阿塞拜疆”,
“巴哈马”、“巴林”、“孟加拉国”、“巴巴多斯”、“白俄罗斯”、“比利时”、“伯利兹”、“贝宁”、“不丹”、“玻利维亚”、“波斯尼亚和黑塞哥维那”、“博茨瓦纳”、“巴西”、“文莱”,
“保加利亚”、“布基纳法索”、“布隆迪”、“柬埔寨”、“喀麦隆”、“加拿大”、“佛得角”、“中非共和国”,
“乍得”、“智利”、“中国”、“科伦比”、“科摩罗”、“刚果(布拉柴维尔)”、“刚果”、“哥斯达黎加”、“科特迪瓦”、“克罗地亚”、“古巴”、“塞浦路斯”,
“捷克共和国”、“丹麦”、“吉布提”、“多米尼加”、“多米尼加共和国”、“东帝汶(帝汶帖木儿)”、“厄瓜多尔”、“埃及”、“萨尔瓦多”,
“赤道几内亚”、“厄立特里亚”、“爱沙尼亚”、“埃塞俄比亚”、“斐济”、“芬兰”、“法国”、“加蓬”、“冈比亚”、“格鲁吉亚”、“德国”、“加纳”,
“希腊”、“格林纳达”、“危地马拉”、“几内亚”、“几内亚比绍”、“圭亚那”、“海地”、“洪都拉斯”、“匈牙利”、“冰岛”、“印度”、“印度尼西亚”,
“伊朗”、“伊拉克”、“爱尔兰”、“以色列”、“意大利”、“牙买加”、“日本”、“约旦”、“哈萨克斯坦”、“肯尼亚”、“基里巴斯”、“朝鲜、朝鲜”,
“韩国”、“科威特”、“吉尔吉斯斯坦”、“老挝”、“拉脱维亚”、“黎巴嫩”、“莱索托”、“利比里亚”、“利比亚”、“列支敦士登”、“立陶宛”,
“卢森堡”、“马其顿”、“马达加斯加”、“马拉维”、“马来西亚”、“马尔代夫”、“马里”、“马耳他”、“马绍尔群岛”、“毛里塔尼亚”、“毛里求斯”,
“墨西哥”、“密克罗尼西亚”、“摩尔多瓦”、“摩纳哥”、“蒙古”、“摩洛哥”、“莫桑比克”、“缅甸”、“纳米比亚”、“瑙鲁”、“Nepa”、“荷兰”,
“新西兰”、“尼加拉瓜”、“尼日尔”、“尼日利亚”、“挪威”、“阿曼”、“巴基斯坦”、“帕劳”、“巴拿马”、“巴布亚新几内亚”、“巴拉圭”,
“秘鲁”、“菲律宾”、“波兰”、“葡萄牙”、“卡塔尔”、“罗马尼亚”、“俄罗斯”、“卢旺达”、“圣基茨和尼维斯”、“圣卢西亚”、“圣文森特”,
“萨摩亚”、“圣马力诺”、“圣多美和普林西比”、“沙特阿拉伯”、“塞内加尔”、“塞尔维亚和黑山”、“塞舌尔”、“塞拉利昂”、“新加坡”,
“斯洛伐克”、“斯洛文尼亚”、“所罗门群岛”、“索马里”、“南非”、“西班牙”、“斯里兰卡”、“苏丹”、“苏里南”、“斯威士兰”、“瑞典”、“瑞士”,
“叙利亚”、“台湾”、“塔吉克斯坦”、“坦桑尼亚”、“泰国”、“多哥”、“汤加”、“特立尼达和多巴哥”、“突尼斯”、“土耳其”、“土库曼斯坦”、“图瓦卢”、“乌干达”,
“乌克兰”、“阿拉伯联合酋长国”、“联合王国”、“美国”、“乌拉圭”、“乌兹别克斯坦”、“瓦努阿图”、“梵蒂冈城”、“委内瑞拉”、“越南”,
“也门”、“赞比亚”、“津巴布韦”}
将结果变暗为ArrayList=Nothing
Dim query=从str中的x开始
其中x.ToLower.Contains(prefixText)
选择x
Return query.ToArray
端函数
末级

AutoCompleteXtender中是否有延迟属性?CompletionInterval我想。

AutoCompleteXtender中是否有延迟属性?我认为CompletionInterval。

正确的方法是添加
CompletionInterval=“xxx”
,其中xxx是以毫秒为单位的超时。(工具是我对ajaxtools的定义)


关于VB背后的代码

<System.Web.Services.WebMethod>
<System.Web.Script.Services.ScriptMethod()>
Public Shared Function GetCompletionKeyList(prefixText As String, count As Integer) As String()
      return {"Your", prefixText, "selection" }
end Function

公共共享函数GetCompletionKeyList(prefixText作为字符串,count作为整数)作为字符串()
返回{“您的”,前缀,选择“}
端函数

正确的方法是添加
CompletionInterval=“xxx”
,其中xxx是以毫秒为单位的超时。(工具是我对ajaxtools的定义)


关于VB背后的代码

<System.Web.Services.WebMethod>
<System.Web.Script.Services.ScriptMethod()>
Public Shared Function GetCompletionKeyList(prefixText As String, count As Integer) As String()
      return {"Your", prefixText, "selection" }
end Function

公共共享函数GetCompletionKeyList(prefixText作为字符串,count作为整数)作为字符串()
返回{“您的”,前缀,选择“}
端函数

AutoCompleteXtender中是否有延迟属性?我想是CompletionInterval。还要检查您的数据是否通过其他路径传输,如代理服务器。我的工作中有这样的功能,ajax请求有时需要一分钟才能返回。。我再次扫描属性并设置CompletionInterval=“0”,然后它现在运行得非常快。真是个陷阱!非常感谢。我会给你一个答案,你能接受吗?谢谢。AutoCompleteXtender中没有延迟属性吗?我想是补全期。同时检查t
<System.Web.Services.WebMethod>
<System.Web.Script.Services.ScriptMethod()>
Public Shared Function GetCompletionKeyList(prefixText As String, count As Integer) As String()
      return {"Your", prefixText, "selection" }
end Function