我正在使用JQuery插件(http://docs.jquery.com/Plugins/Autocomplete)向“城市”文本字段添加自动完成功能。该组件调用一个简单地加载所有可能城市值(> 8000)的数组的ASP.NET页面,然后迭代该数组返回那些以用户迄今输入的文本开头的数组。将数据返回到客户端自动完成查询
事情是,它在实际使用中很慢。它滞后于用户输入的内容,大部分时间用户可能不会注意到它在那里。
所以,我的问题是,我该如何加快速度?
我曾经想过,将数据放入数据库并且必须多次击中数组才是更好的选择。其他人是否同意这种信息是硬编码的,因为它并不是一成不变的,需要全部关注回报速度?
如果是这样,你会看什么来提高性能的速度?我应该在应用程序启动时缓存数据并从内存中访问它吗?我会更好,而不是使用多个数组,每个数组都包含以特定字母开头的值,所以我可以直接转到相关的数组,从而迭代一个更小的数组?或者我错过了一个更明显的方法来解决这个问题?
在此先感谢。
数据来自哪里?某种SQL服务器,另一个来源? – 2010-01-28 15:16:30
你可以发布你的代码吗?过滤8,000个字符串应该会立即回来,特别是如果它们位于内存列表或数组中。 – 2010-01-28 16:55:01