【问题标题】:Is it faster to load XML all at once or bit by bit?一次性加载 XML 更快还是一点一点加载 XML 更快?
【发布时间】:2010-12-24 15:53:08
【问题描述】:

这里有个简单的问题:加载大型 XML 文件(每行只有一个项目)(大约 50,000 个项目)并在客户端使用 JavaScript 解析它是否更快(我试图找到对应于某个特定的行日期范围),还是让 PHP 进行预解析并根据需要将其发送到客户端是否更快?问题是 PHP 请求大约每秒一次,这似乎有点过分 - 我正在尝试在地图上加载点,我希望每个日期范围都有大约 2000 个点。

谢谢!

【问题讨论】:

    标签: javascript xml parsing nsxmlparser


    【解决方案1】:

    如果您每秒将 1,000 条结果返回给客户端,那么您将遇到性能问题...也就是说,如果您通过 AJAX 发送大量数据,我建议您使用 JSON,因为这样的数据要少得多通过网络发送的开销/内容。

    您还提到了在服务器上进行过滤...绝对过滤掉您不需要发送的任何内容...直到您需要发送为止。

    【讨论】:

    • 奇怪的是,当我为相同数量的数据执行 getJSON 而不是 XML 版本 (createXmlHttpRequest) 时,Firefox 似乎很难 - 是因为它试图缓存某种形式的内容?然而,JSON 的占用空间确实更小。
    • JSON 在 Firefox 中应该可以正常工作 - 您返回的数据是否具有正确的内容类型标头“application/json”?... 至于缓存,实际上 IE 在缓存方面历来最激进AJAX 请求。
    【解决方案2】:

    两者都很慢。看来您一开始就不应该使用 XML。解析和加载一个巨大的 XML 需要时间,搜索结果树也是如此。使用数据库,它们是为这样的任务而设计的,并且已经优化了很多年。 XML 不是数据库。

    无论如何,如果您预计每天有多个用户,缓存将有很大帮助,您应该使用 very 轻量级格式将数据发送到客户端(JSON 可能是最好的选择)尽量减少浪费的带宽。

    【讨论】:

    • 奇怪的是,当我为相同数量的数据执行 getJSON 而不是 XML 版本 (createXmlHttpRequest) 时,Firefox 似乎很难 - 是因为它试图缓存某种形式的内容?然而,JSON 的占用空间确实更小。
    【解决方案3】:

    这取决于。在这种情况下,我建议您测量一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 2012-01-20
      相关资源
      最近更新 更多