【问题标题】:Performance issues with jQuery mobile appjQuery 移动应用程序的性能问题
【发布时间】:2017-05-23 20:47:38
【问题描述】:

我使用 phonegap 和 jQuery mobile 构建了一个相当大的应用程序。我有大约 5 个页面,其中一个 HTML 页面(根据 jQuery mobiles 导航系统)都共享一个主 JS 文件,该文件有 3400 行 JS 代码。

该应用程序在开发期间运行速度较慢,我想知道将应用程序拆分为单独的 HTML 文件并将它们加载到 DOM 是否会有所不同?

其次,是否也值得拆分 javascript,以便当前仅加载页面上需要的 javascript?

我应该准备好在设备上加载的全部 3400 行代码吗?还是在页面中注入所需的 JS?

【问题讨论】:

  • 很确定你可以用常识自己回答这个问题......

标签: performance jquery-mobile cordova


【解决方案1】:

是的,正如 Nathan 所说,我想你已经知道答案了。

我绝对建议将您的应用程序拆分为单独的 HTML 页面和 JavaScript,并仅在需要时加载 JavaScript。我听说人们推荐一种单页架构方法,尽管不同之处在于 HTML 页面和 JavaScript 是在需要时注入和加载的。

有关正确实施单页架构的更多信息,请参阅PhoneGap tutorial 中的第 4 部分。

一开始就将所有内容都加载到内存中并不是一个好主意……这是对资源的低效使用——正如您从缓慢的性能中看到的那样。

拥有单独的 HTML 和 JavaScript 文件也应该更容易管理和理解。

【讨论】:

  • 我已经阅读了该教程,它是迄今为止我所见过的关于 PG 应用程序架构的最好的教程。我只是在问一开始加载所有 JS 是否会对整个应用程序的响应能力产生影响。感谢您的回答
  • 了解 jQuery Mobile 如何管理 DOM 也很重要。 DOM 越大,消耗的内存就越多,这会降低性能。当一个新页面被注入时,前一个页面(除非它在默认源中)被标记为删除。这有助于保持 DOM 尽可能小。多页文档没有解决这些问题。您可能有一个突出的问题是特定的 JS 不会在页面加载时执行,因此如果您有自定义 JS 以延迟加载或需要在新页面上执行,您可能需要绑定到某些页面生命周期事件。
【解决方案2】:

在 jquery 移动页面 DOM 中加载了太多数据〜(列表视图中的 250 条记录)之后。导航系统传输非常缓慢。我尝试了很多技巧,但没有成功。最后,通过应用以下技巧,我获得了出色的导航性能。

  1. 尝试更改页面时尝试从 DOM 中删除/隐藏填充的数据。
  2. 返回页面时。重新填充它。

【讨论】:

  • 另外,尽量减少 HTML 结构。因为一些 HTML 标签的渲染速度很慢。如果您需要使用 HTML 标签来操作 HTML,请尝试使用虚拟 DOm 策略。
猜你喜欢
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
相关资源
最近更新 更多