WebWorks UI结构:全部在一个HTML中,或单独的文件



设计WebWorks应用程序的页面结构的正确方法是什么?我也在使用jQuery-mobile。

答:所有页面都应该在一个HTML中,每个页面都是一个:

<div data-role="page">...</div>

B: 页面应该在不同的HTML文件中分开吗?

我目前正在使用方法 A,但该应用程序在从一个页面过渡到另一个页面时很慢。我怀疑其中一个原因是包含所有页面的单个 HTML 的大小。

我遇到的另一个问题是按下手机上的物理"后退"按钮会退出应用程序,这是我怀疑将所有页面放在一个 HTML 中的方法的另一个原因。

一个非常固执己见的答案:你使用了错误的框架。 jQuery Mobile非常臃肿,即使在最近的iOS设备上,我也看到它的性能很差,更不用说黑莓的操作系统性能不是很好。

如果你继续沿着jQuery Mobile路线走下去,我仍然建议你把所有的页面放在一个HTML文件中,尤其是因为在单独的HTML页面之间移动时,WebWorks上的用户体验有点差。例如,当您点击指向不同 HTML 文件的链接时,您会得到非常明显的"白色闪烁",尤其是在较旧/功能较弱的设备上(尽管您可以通过在 config.xml 中为 rim:loadingScreen 元素设置背景颜色来缓解这种情况)。由你来决定这比jQuery Mobile中的缓慢过渡更好还是更差。

至于后退

按钮,您可以通过将事件处理程序附加到后退键来覆盖默认行为,如下所示(不要忘记在您的配置中启用blackberry.system.event功能.xml):

blackberry.system.event.onHardwareKey(blackberry.system.event.KEY_BACK, function() {
  // Back key pressed, go back to previous screen
}

如果你仍然对替代解决方案持开放态度,我强烈建议你尝试一下bbUI.js(https://github.com/tneil/bbUI.js) - 它是一个半官方的框架,在BB上看起来比jQuery Mobile更自在,并且更好地针对平台进行了优化(例如,允许您仅加载您当时显示的特定页面所需的脚本, 解决一些 WebWorks/BB 特定的问题等)- 将其与Zepto(http://zeptojs.com/)相结合,Zepto是一个极快的jQuery替代品,你最终会得到一个比基于jQuery Mobile的应用程序要慢得多的应用程序。

您可以使用最适合您项目的方式。 对于一个大型应用程序,可能值得拥有一个"索引.html",然后链接到其他几个页面。也可以更轻松地编辑代码。

最新更新