cordova - 在 PhoneGap/Cordova 应用程序中使用像 RequireJS 这样的 AMD 加载器是否明智?

标签 cordova requirejs

我们都知道使用 RequireJS 的好处。我想知道在开发 Cordova 应用程序时是否需要考虑性能因素(特别是在像 Android 2.x 这样的平台上,它可能会很慢)。假设我正在编写 SPA 并在导航到新 View 时动态加载模块 - 即使我从文件系统加载,是否会出现延迟问题?而不是在应用程序最初加载时加载我的所有 JavaScript 资源?

是的,我知道我可以测试自己 - 我只是想知道是否有人已经测试过性能!

最佳答案

如果您使用 r.js 至少连接(如果不优化,当所有资源都在本地时,这对某些人来说可能有可疑的好处)您的模块,您将不会从除初始文件系统之外的文件系统加载您的应用程序的负载。通过使用“文本”等加载器插件,甚至您的 HTML/模板资源也可以内联到串联文件中的模块中,因此模板的加载只是函数调用的“性能命中”。发送至地址@Gajotres's point ,您可以先订购脚本标签并包含 Cordova,或者如果您是 require.js 2.1.0(我相信)或更好,则可以通过 require.config 填充它。因此 - 简而言之,如果您将 require.js 用于混合移动设备,请不要跳过串联步骤。假设您已将模块连接到“构建的”js 文件中,此时性能将取决于您无法控制的因素(设备、 native webview 实现等)以及您可以控制的其他因素 控制...诸如此类的事情:

  • 该应用的总体复杂性是多少?如果它是静态 View ,那么显示/隐藏已经存在的 DOM 元素将比需要一个需要模板模块并使用任何模板引擎等呈现模板的模块更快。
  • 假设它不是静态 View ,深度嵌套的 DOM 结构(例如)可能会给您带来性能、回流等方面的困扰。

总的来说,Andrew Trice 有一篇关于移动设备用户体验注意事项的精彩文章:http://www.tricedesigns.com/2013/03/11/performance-ux-considerations-for-successful-phonegap-apps/

如果应用程序不是非常复杂,那么一个简单的构建步骤可以连接您的手动模块(这样您就可以在开发时获得较低的认知开销,再加上一个文件的构建输出)可能就足够了。但除非您也连接模板(以 js 模块可访问的格式),否则您必须在某个时候加载它们...

关于cordova - 在 PhoneGap/Cordova 应用程序中使用像 RequireJS 这样的 AMD 加载器是否明智?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16859651/

相关文章:

javascript - iscroll 在 phonegap 中不起作用?如何在 phonegap 中使用 iscroll

backbone.js - Busterjs+requirejs+backbone 怎么写测试?

backbone.js - 使用 Backbone.js 路由器浏览使用 require.js 模块化的 View

ios - Ngbdropdown 单击事件不适用于 ios phonegap,角度 8 运行 cordova

android - 在 [phonegap] 执行 'cordova run' 时卡住

ios - Cordova 启动画面插件 iPad 横向模式问题

android - 带 Google map 的 PhoneGap/Android 应用程序的域白名单

javascript - requirejs blueimp fileuploader 只加载 min.js 文件而不加载其他文件

javascript - 如果出现任何 javascript 语法错误,如何中断 r.js 构建?

javascript - 如何使用 RequireJS 加载 KnockoutJS 自定义函数?