0

我想创建一个 AJAX 搜索来查找和列出论坛中的主题(只是主题链接和主题)。问题是:哪种方法更好更快?

  1. GET 线程列表作为 JSON 字符串并将其转换为对象,然后遍历项目并创建一个<li/>or <tr>,写入数据(链接、主题)并将其附加到线程列表。(jQuery 驱动)

  2. 获取包含在 HTML 标记中的线程列表并打印(或使用innerHTMLand $(e).html()

谢谢...

4

4 回答 4

0

我更喜欢第二种方法。

我认为在服务器端,您必须将数据转换为 JSON 或 html 格式,所以为什么不直接转到浏览器理解的格式并避免在客户端重新处理它。您还可以轻松地调整第二种方法,以便为禁用 JavaScript 的用户优雅地降级(这样他们仍然可以通过标准的非 JS 链接看到结果。)

于 2012-07-07T03:56:43.197 回答
0

我不确定哪种方法更好(我认为第二种方法更好,因为它似乎更少接触数据),但确定的方法是尝试两种方法并衡量哪种方法更好。

于 2012-07-07T04:05:04.910 回答
0

如果 javascript 需要很长时间来处理 JSON 并填充 html,那么服务器生成的 HTML 肯定会更快。

但是,为了可维护性,JS 更好。您可以通过更改 JS 来更改 HTML 生成,而不必更新服务器端代码、制作 delta 版本等。

最好的方法是衡量它到底有多慢。有时我们认为它很慢,但是当你在现实世界中尝试它时,你并没有真正看到很大的不同。您在传输 JSON 对象时可能会有很大的延迟。如果您从服务器发送 html 表示,该延迟仍然会存在并且实际上会增加。

所以,如果你的瓶颈真的是解析 JSON 并生成 html,而不是从服务器传输,那么从服务器发送 html 是有意义的。

但是,您可以在生成 html 和解析 JSON 时进行大量优化。有很多技巧可以让它更快。最好是你给我看代码,我可以帮你做一个快速的基于 JS 的实现,或者告诉你在服务器上做。

于 2012-07-09T14:19:58.140 回答
0

“更快”可能是第二种方法。

“更好”可能是主观的。

例如,我一直处于无法更改服务器返回的 html 的情况(作为前端开发人员),我希望他们刚刚交付了一个 json 对象,这样我就可以按照我想要的方式设计页面。

此外,(可能不是特定于您的用例),在初始页面加载时提供所有 html 可能会增加页面大小和加载时间。

于 2012-07-07T05:14:18.397 回答