PhoneJS 与常规的backbonejs/HTML5 应用程序相比都有哪些优势?

Posted

技术标签:

【中文标题】PhoneJS 与常规的backbonejs/HTML5 应用程序相比都有哪些优势?【英文标题】:What are the advantages of PhoneJS over a regular backbonejs/HTML5 app?PhoneJS 与常规的backbonejs/HTML5 应用程序相比有哪些优势? 【发布时间】:2013-09-01 05:15:21 【问题描述】:

我尝试使用PhoneJS——它很容易上手,而且似乎提供了一个很好的框架。但是,我通常更喜欢避免预先构建的框架,因为它们限制了我的灵活性。我主要担心的两个问题是:

    PhoneJs 使用 Jquery,而很多人建议使用 Zepto 以获得更好的性能 我可以使用原生 trigger.io/phonegap 插件吗? 根据经验,应该避免为移动应用程序使用“大型”框架(出于性能原因)——这就是为什么有些人反对 Jquery Mobile。 PhoneJS 相当大。有人对PhoneJS性能有任何经验吗? 框架降低了灵活性 - PhoneJS 自定义/扩展有多容易?

【问题讨论】:

codefessions.com/2012/08/… 有趣...你试过使用应用框架吗? 【参考方案1】:

1. PhoneJs 使用 Jquery,而很多人建议使用 Zepto 以获得更好的性能

如果你打算使用 Zepto,尽管certain benchmarks 表明它的整体性能并不比 jQuery 好,但你很可能可以毫不费力地将它用于 jQuery . Zepto 是一个 jQuery 克隆,其中删除了处理旧浏览器边缘情况的代码。由于您正在为移动设备开发,我怀疑这不会成为问题。 Foundation 4 framework 仅作为示例,允许您在两者之间进行选择。

2.我可以使用原生 trigger.io/phonegap 插件吗?

您没有理由不能使用PhoneJS 来构建您的代码并使用PhoneGap 或Trigger.io 来构建、打包和部署它。 PhoneJS 和 PhoneGap / Trigger.io 是旨在解决完全不同(但互补)问题的框架。事实上,PhoneJS page 专门提到了使用 PhoneGap 打包应用程序。您当然可以充分利用您决定与 PhoneJS 一起使用的两者(PhoneGap 或 Trigger.io)中的任何一个提供的 API 和插件。

3.根据经验,应该避免为移动应用程序使用“大型”框架(出于性能原因)——这就是为什么有些人反对 Jquery Mobile。 PhoneJS 相当大。有人对 PhoneJS 性能有任何经验吗?

除了对下载时间的影响(如果您使用 trigger.io/PhoneGap 将您的代码打包为原生应用程序不会成为问题)之外,框架的大小之间不一定存在相关性和表演的质量。据我了解,jQuery mobile 的主要问题是它生成的用于渲染其 UI 组件的标记量 (link)。也就是说,我最近在一个使用 PhoneGap 打包的移动应用程序上使用了 jQuery mobile,并且性能很好。我很可能希望PhoneJS 会是一样的。

请注意,您从使用过该框架的人那里得到的关于该框架性能的任何回答都可能是相当主观的。如果您担心,最好的建议是下载该框架,使用它对您的应用功能的代表性子集进行原型设计,然后在您计划面向的最低规格设备上对其进行测试。

4.框架降低了灵活性——PhoneJS 自定义/扩展有多容易?

一个好的框架可能会在一定程度上限制您的灵活性,但我认为这是一种积极的方式。它将鼓励您构建代码,使其保持一致、解耦和可维护。既然有人已经为您完成了所有艰苦的工作,为什么还要浪费时间重新发明***?

使用框架可以让您不必对文件和代码结构做出很多无聊的决定,并节省您的时间,以便您可以专注于在实际问题域(即您的应用所独有的东西)。

PhoneJS 由一套 UI 组件和Knockout MVVM framework 组成,因此它大致类似于 jQuery mobile 和 Backbone 的组合。如果您不喜欢 UI 组件,您可以编辑代码以改进它们或选择根本不使用它们。通过查看文档,您将了解 Knockout 的灵活性,但参考我的第一点,如果您发现自己与它抗争,您可能无法充分利用它。


TLDR:就性能和灵活性而言,最适合评估框架是否适合您的要求的人是您。下载它,看看代码,玩弄它,自己制作一些功能的原型,然后根据你的经验做出决定。

【讨论】:

感谢 Zepto 与 Jquery 的输入。希望找到真正使用 PhoneJS 的人。 我不确定您是否需要实际使用过它的人(而且似乎没有任何人即将推出)。请参阅我的更新答案。

以上是关于PhoneJS 与常规的backbonejs/HTML5 应用程序相比都有哪些优势?的主要内容,如果未能解决你的问题,请参考以下文章

与常规缓冲区和制服相比,OpenGL 纹理单元背后的原因是啥?

为啥 ref 参数类型与常规类型不同?

将连接与其他连接或常规查询相结合

Akka HTTP 源流与常规请求处理

CodeIgniter Active Record 与常规查询

django 抽象模型与常规继承