【问题标题】:Classic ASP Auto Suggest Like Google像 Google 一样的经典 ASP 自动建议
【发布时间】:2010-08-21 18:06:14
【问题描述】:

在处理一个项目时,我遇到了一个需要使用经典 asp 实现自动建议文本框的功能。我做到了,而且效果很好。当用户在文本框中输入内容时,我使用 XMLHttp Request 对象来选择数据库列值。

一切正常。但是如果表中有太多行(37,000+),应用程序的性能就会下降。请建议我应该采取哪些步骤来提高这种情况下的性能。

【问题讨论】:

  • 性能瓶颈到底在哪里?您不会返回浏览器所有 37000 条可能的建议,对吧?
  • 它在数据库端,查询需要很多时间来挑选记录。我使用 select columnname from tablename where columnname like 'usertext%'。
  • 如果处理sql请求很慢,那么你需要db相关的解决方案。尝试使用“sql”或类似标签发布问题。我会尝试创建列索引,但我不是数据库专家。一般来说,处理 37000 行应该很快(假设您没有将所有 37000 行都返回给您的应用程序)
  • 是的,非常正确,假设用户刚刚输入了 A 并且有超过 20K 行以后面的 A 开头。那么在这种情况下返回的行数太多了,但在那种情况下@balexandre 也可以工作,即限制从数据库返回的行数。正在努力,很快就会在这里更新。
  • 为什么不让用户选择一个首字母并且只为那个字母自动选择列表呢?您可以为每个字母添加按钮。

标签: javascript asp-classic vbscript


【解决方案1】:

为什么不直接显示SELECT TOP 15 [name] ...

为什么要全部展示...

如果有人输入“B”,我真的(作为用户)不希望您(应用程序)向我展示所有可能性。

...还是我错了?


P.S.你需要开始使用像 jQuery 这样的东西......在大约 10 行中你会做与所有 javascript 代码一样的事情;-)


添加

自动提示框只有在输入前 3 个字符后才开始提示是正常的……先试试这个!

只需添加您的 showHint 方法

if (str.length < 3) return;

【讨论】:

  • 是的,您对 JQuery 的看法是正确的。但真正的罪魁祸首是数据库端,它需要时间来执行查询并过滤掉记录。
  • 这里的 SQL 语句实际上是什么?不应该那么大...您使用的是什么数据库版本?
【解决方案2】:

在查询中的 where 语句中使用数据库字段的索引,它会更快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 2010-12-22
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多