【问题标题】:ajax speed of generating select生成选择的ajax速度
【发布时间】:2011-11-24 11:03:15
【问题描述】:

我在这里有一个问题Mysql select speed 我认为 mysql 的选择很快,但是

我的问题是,当 ajax 生成大量城市选择和选项时,例如巴西。

有没有办法更快地生成 ajax 选择?因为如果太大,浏览器会滞后并等待加载 select 的全部内容。我想让它更顺畅。 谁能帮帮我? :(

【问题讨论】:

  • 你的问题是在服务器还是在客户端?

标签: mysql ajax performance


【解决方案1】:

尝试缓存您的查询结果。这意味着,定期运行查询,保存结果(例如在另一个表或 xml 文件中),然后根据请求将预缓存的数据发送到浏览器。

【讨论】:

  • 你的意思是:已经准备好外部文件中的城市列表,然后将其加载到div中?
  • 是的,例如。另一种选择是将查询保存到 mysql 视图,虽然我不是 mysql 专家,也不知道使用 mysql 视图是否具有类似 oracle 的物化视图的性能优势。
  • 好吧,我已经尝试过预加载它,我发送 ajax 请求并将其写入文件,例如 form.html,然后我将其加载到某个 div 中,当我在空白页中尝试时它很快,但是当我将它加载到我的整个页面时,它花了太长时间,问题出在哪里??
  • 那么问题可能只是数据量太大(在另一条评论中,您谈论的是 250 万行)。也许您的计算机速度很慢,并且您的浏览器出现问题,包括页面上的数据。尝试更改您的浏览器或尝试另一台电脑,看看问题是否仍然存在,并消除问题的潜在原因。
【解决方案2】:

您可能希望将整个列表预加载到您的文档中并通过display: none; 属性隐藏它们。然后你不需要 AJAX 拉取你的选择框的内容。相反,如果用户选择特定条目并隐藏其他条目,只需显示您需要的列表。

【讨论】:

  • hm,这是可能的解决方案,但是,我有一个世界各地城市的大型数据库,将其加载到文档中会花费很多时间来加载页面,不是吗?
  • 大约 25 万行,-> 城市
  • 您可以查看使用最多的国家/地区,并仅预加载最受欢迎的国家/地区。对于其他人,您可以使用user1039665 建议的缓存方法。
【解决方案3】:

你的问题是在服务器还是在客户端? Fiddler 或 Firebug 可以帮助您了解在服务器中处理和传输到客户端所花费的时间。

我认为您需要更改服务器端,并返回小字符串,如下所示:

1,Jerusalem|2,Tel Aviv|3,Ariel

在客户端,你需要用“|”分隔然后通过",",并使用JS数组构建HTML:

//未测试 var a = string.split("|"),s=[] for (var i=0;i"+b[1]+""); } $("#div").html(s.join(""));

JSON 更易于使用,但会使响应变大且速度变慢。

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2023-03-17
    • 1970-01-01
    • 2020-11-06
    相关资源
    最近更新 更多