【问题标题】:Where generate HTML dynamically on browser or on server? [Mobile Web Development]在浏览器或服务器上动态生成 HTML 的位置? [移动网页开发]
【发布时间】:2012-04-18 08:10:00
【问题描述】:
我在移动网络上工作,有时我会显示一个非常大的列表视图(我正在使用 JQM)。
我注意到从 Javascript 中返回的 JSON 生成大 DOM 需要几秒钟的时间。
您认为在服务器上生成 HTML 并从中下载压缩比使用 Javascript 通过 JSON 数组迭代更好吗?
编辑:
最后我一次下载了所有请求的数据,JSON压缩不会太重。然后我使用相应的数据块进行分页重建列表视图,我正在按页面重建 25 个列表项,但应用程序响应速度不快。
【问题讨论】:
标签:
performance
web-applications
mobile
jquery-mobile
【解决方案1】:
最佳实践方法是使用分页而不是从服务器发送整个 JSON 字符串,而是将其拆分为几个“页面”。
您的应用程序会想到 infinite scroll 之类的东西。
【解决方案2】:
取决于您用来生成 HTML 的 JS。您应该使用 innerHTML 和数组进行字符串连接。您也可以尝试分页,但使用 JQM 可能会很棘手。此外,JQM 通常很慢。
【解决方案3】:
您要发回多少数据,要插入多少 DOM 节点?
您发送的 JSON 与您将发送的 HTML 之间的大小差异是多少?
我会测试这两种方法的大小和响应能力,然后做出选择。
您面临的挑战之一是应用程序与无线电使用的响应能力(更长的无线电使用时间可能比具有许多睡眠/唤醒/睡眠周期的聊天连接更好地延长电池寿命)
所以我还要看看一次性发送多少数据是有意义的,即有多少数据是可见和使用的?