【问题标题】:Using jQuery to parse large data set on categories & sub-categories使用jQuery解析大类和子类的大数据集
【发布时间】:2010-11-23 12:17:43
【问题描述】:

我正处于一个网络项目的早期阶段,该项目将涉及大量(5000 多个)类别、子类别和子子类别,需要加载到 html 表单中。

我正在考虑将数据存储在 XML 文件中,然后使用 jQuery 加载到表单中,仅在请求时获取子类别(有什么方法可以优化吗??)。我正在使用 Zend Framework,所以我认为每次从 MySQL 数据库加载都会大大降低应用程序的速度。

我的问题是这种方法会有什么缺点,尤其是。因为需要在 SQL 数据库中引用类别列表?

非常感谢,

亚当

【问题讨论】:

  • 内网?如果您有幸告诉您的用户使用什么浏览器/插件,您可以使用 Chrome 中的内置数据库,或使用 Google Gears 的数据库。
  • 如果您能以 JSON 格式而不是 XML 格式存储数据,您的 JavaScript 引擎将永远爱您。它的解析速度无限快,并且更容易(如果可能的话)遍历。

标签: jquery html xml webforms


【解决方案1】:

为了在此处存档良好的性能/响应时间,您可以做很多事情。

  1. 使用 JSON 而不是 XML。 XML 可能需要更多的带宽,并且它需要更长的时间来解析,尤其是对于如此庞大的数据集
  2. 在服务器上缓存文件并在每次写入时重新生成,除非您期望写入次数多于读取次数,否则这将大大提高性能
  3. 为了获得更多的客户端响应能力,您可以仅在需要时加载数据,您可以为此在服务器上部署一个文件结构,因此您需要有子目录,然后包含子类别 .json 文件等。这样您可以最小化传输到客户端的数据,还可以优化缓存以仅重新生成树的更改部分。

这里你主要关心的应该是前端,因为一次将 5000+ 个类别加载到一个表单中需要很长时间,所以后端的大多数结构只是为了加速客户端、数据库和 zend应该自己处理正常的缓存。

【讨论】:

  • 感谢 Ivo.. 关于第 2 点,我将如何缓存 json 文件并重新生成?
  • Zend 似乎支持 JSON:framework.zend.com/manual/en/zend.json.basics.html 一旦你写入数据库,你将 A) 必须找出哪些变化(如果你使用树方法)然后B)将该数据格式化为关联数组,将其提供给Zend_Json::encode,然后将返回值写入磁盘上的文件。
【解决方案2】:

既然您说您有一个大型数据集,请考虑使用 XSLT transformations 生成表单的标记。 我也遇到过类似的情况,使用 XSLT/Xpath 获得了很大的优势

这是一个sample,它应该向您展示 XSLT 在这种情况下的原始能力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2016-05-24
    • 2013-11-11
    • 2014-08-12
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多