构建 HTML5 移动应用程序的推荐方法是啥? [关闭]

Posted

技术标签:

【中文标题】构建 HTML5 移动应用程序的推荐方法是啥? [关闭]【英文标题】:What's a recommended way to build a HTML5 mobile app? [closed]构建 HTML5 移动应用程序的推荐方法是什么? [关闭] 【发布时间】:2011-09-22 15:35:41 【问题描述】:

虽然我们是这项技术的新手,但我们现在正在使用 sencha-touch 和其他一些 js 库(如 i18n)开发 html5 移动应用程序。

问题在于:

    无论我们如何尝试调整性能,都感觉有点慢。 每次我们切换到另一个页面时,当浏览器加载下一页时,都会出现一个丑陋的空白页间隔。

我们认为我们可能会错过一些 HTML5 移动应用的结构性和最佳实践。我们推测我们仍在使用我们的网络逻辑处理 HTML5 移动应用程序。

这就是我想问的原因:

    除了 sencha-touch 以外的其他 js 可以加吗?是不是在这里拖了速度? 多页移动应用程序是一种好习惯吗?还是应该在同一个 html 页面中构建所有内容? 有没有办法预先加载所有内容,以便更快地更改页面?

谢谢

【问题讨论】:

无论你尝试什么框架,它总是会让人感觉缓慢/笨拙。您应该放弃 HTML5 并采用原生方式。 【参考方案1】:

Sencha touch 有很好的表现,而且他们承诺在即将到来的(10 月 26 日左右)sencha touch 2 中会有更好的表现(http://www.sencha.com/blog/sencha-touch-2-what-to-expect )。所以 sencha touch 作为 JS 库进行了很好的优化。也许您的应用程序没有得到很好的优化,或者其他东西正在减慢它的速度。总而言之,我的观点是,作为 JS 库的 sencha touch 可以说是 JS 库所能达到的一样好,所以这根本不是问题。

所有 JS 应用程序都应该是一页 HTML。有一些方法可以维护浏览器历史记录和状态,如果这是您关心的问题。

有几种方法可以预加载和缓存所有内容,但如果您使用单页 HTML Web 应用程序,那么您实际上不必这样做。

所以我的建议是坚持使用 sencha touch,至少在 sencha touch 2 推出之前,看看性能问题是否得到解决,然后再转向其他解决方案。此外,您需要做的第一件事是使其成为一个单一的 HTML 页面应用程序,并进行一些测试和测量以了解是什么导致应用程序变慢。

【讨论】:

谢谢 Ilya139。您通常如何进行性能测试以了解是什么导致您的应用变慢? 另外,关于移动应用的文件结构,你有什么推荐的读物吗? 要测试您的应用程序的性能,您可以使用 jsperf.com 和 www.broofa.com/Tools/JSLitmus/ 等工具,或者只是将执行某些功能所需的时间输出到控制台 (@987654323 @)。此外,chromes 开发者工具的时间线可以方便地查看渲染需要多少时间,内存等。总而言之,有很多工具,但最重要的是了解您的代码并从用户的角度查看看起来很慢的地方。 对于移动应用程序的结构,我推荐 MVC 模式。在此处查看有关它和煎茶的教程:sencha.com/learn/a-sencha-touch-mvc-application-with-phonegap 和此处vimeo.com/28219285【参考方案2】:

我个人使用 JQuery Mobile。

http://jquerymobile.com/

框架确实需要一些时间来理解。它的完整版应该在本月或下月初发布。自 Alpha 以来我一直在使用它。如果您熟悉 JQuery,我强烈推荐它。他们正在处理一些非常简单的事情,例如每部手机之间的不同差异。

这是一个支持平台列表: http://jquerymobile.com/gbs/

它是 ajax 驱动的,但是这个功能可以关闭。它可能有点重,但考虑到在每部手机上处理这么多奇怪的事情所做的工作量,我认为它真的值得学习。我建议您查看文档和演示,看看这是否是您要查找的内容。

http://jquerymobile.com/demos/1.0b3/

如果您对此有任何具体问题,请随时提出。

【讨论】:

以上是关于构建 HTML5 移动应用程序的推荐方法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTML5 构建面包屑导航的最新方法是啥

地理定位的最佳方法是啥?

使用 ColumnTransformer/FeatureUnion 后构建完整数据框(特征值 + 名称)的推荐方法是啥?

将 PostgreSQL JSON 类型与 NodeJS 一起使用的最佳方法是啥

HTML5来了:推荐5个好用的混合式App开发工具

在 ncurses 中实现文本滚动的推荐方法是啥?