对选择合适的 iOS Mobile Safari Web 开发工具(jQuery Mobile/Sencha Touch/etc)感到沮丧

Posted

技术标签:

【中文标题】对选择合适的 iOS Mobile Safari Web 开发工具(jQuery Mobile/Sencha Touch/etc)感到沮丧【英文标题】:Frustrations with deciding on the right iOS Mobile Safari web development tools (jQuery Mobile/Sencha Touch/etc) 【发布时间】:2011-08-04 13:57:40 【问题描述】:

在完成一个用于 iPad Mobile Safari 的 Backbone JS 和 jQuery Mobile 项目后,让我觉得 jQuery Mobile 可能不是该特定工作的正确工具。

我发现 jQuery Mobile 的性能普遍令人失望。许多移动 JS 框架(处理转换、对话框等)似乎都遭受了同样的困扰。让 jQuery Mobile 和 Backbone JS 很好地协同工作似乎有点参差不齐。

我需要像 jQuery Mobile 这样的东西来处理拖放元素和页面转换(和对话框)。 Backbone JS 非常适合我们正在做的事情,因此我们希望将其保留在工具箱中。我们只为 iPhone 和 iPad 做项目,在这种情况下不适合在本机(使用 Objective-C)进行。

最近完成的项目最终使用了 jQuery、jQuery Mobile、jQuery UI、一些使 jQuery UI 与触控配合使用的小插件、Backbone JS、Underscore JS……对于手机上的 Web 应用程序来说,这一切似乎太沉重了!我想要功能强大且占用空间更小的东西。

Sencha Touch 似乎具有出色的性能,但似乎您需要先跳入其中,并了解它的工作原理。但也许我错了?我更多的是寻找与 Backbone 配合得很好的东西,相对轻量级,并且有很多位可以为 iPhone/iPad 构建漂亮的 UI(手势支持、页面/对话框转换、列表视图等)。理想情况下,它的行为更像 jQuery——我称它为 DOM 上的部分,当我们不想要它时不碍事——而不是它是一个口授框架,必须遵守它的规则(比如 jQuery移动设备,很可能是 Sencha Touch)。也看到了jQTouch……不过这个现在已经被Sencha接手了,意思是死了?

有什么可以做到这一点的吗?我们可以使用轻量级、稳定、快速和可靠的东西,与 Backbone JS 一起使用,为 Mobile Safari 创建快速、响应式的 Web 应用程序......它仍然具有所有有用的 UI 和转换等,这将使应用程序大放异彩?

【问题讨论】:

Tu 总结一下——您希望 jquery mobile 处于测试后版本,以便它已经针对性能进行了优化。 :) 这是一个 alpha,所以它还没有优化,你使用了太多的添加(恕我直言)。 是的,看起来确实如此! ...我确实意识到它仍在 Alpha 中。我确实希望他们现在专注于性能(它确实需要它,目前它非常缓慢!) 【参考方案1】:

Sencha Touch 确实非常“先跳入其中,然后一路走下去”——但在我看来,这是值得的。 (我目前正在“进入 Sencha Touch”的过程中)

在我自己寻找合适的框架时,我也遇到了 NimbleKit (http://www.nimblekit.com)。 Nimblekit 处于稳定版本中,提供 ios UI 元素,并且可以使用您希望的任何 JS 库进行扩展。然而,Nimblekit 不是基于网络应用的......

因此,选择归结为 jQuery Mobile(并等待该库的进一步开发 // 性能优化)或 Sencha,一个非常广泛但学习曲线陡峭的框架。

Webapps 的性能总是难以优化。

【讨论】:

【参考方案2】:

嗯...关于 javascript 框架膨胀部分,我同意你的看法。我发现 jqTouch、jQuery Mobile 和 Sencha 也很令人沮丧。有太多的东西不需要在那里。然后我查看了 Zepto 和 BaseJS,但它们大多只用于移动 JavaScript,没有提供控件或布局帮助。所以我卷起袖子,重新发明了***。我创建了一个名为 ChocolateChip-UI 的框架。它为移动 Web 应用程序提供了一种清晰而直接的标记语言,称为 WAML(Web 应用程序标记语言)。它还提供了许多标准的 iOS 类型控件和布局,可以轻松定制以创建独特的外观。大多数 ChocolateChip-UI 控件可以手动编码或动态创建并通过简单调用进行初始化。 ChocolateChip-UI 负责使控件具有适当的行为。

我快速浏览了 Backbone,感觉应该可以将 ChocolateChip-UI 的布局和控件用作 Backbone 视图。所有ChococlateChip-UI 应用程序的根是“应用程序”。这将有一个或移动“视图”,也可以有“子视图”。因此,您似乎应该能够将 ChocolateChip-UI 视图和子视图映射到 Backbone 视图。如果你得到这个工作,请让我知道。无论如何,当我有足够的空闲时间时,我会对自己测试它感兴趣,看看我是否可以为那些想要使用 Backbone 的人制作一个带有 Backbone 支持的特殊版本的 ChocolateChip-UI。基本上,那个版本的 ChocolateChip-UI 将成为 Backbone 的增强视图引擎。

就此而言,ChocolateChip-UI 是开源的。随意蚕食或切除它以满足您的目的。

【讨论】:

以上是关于对选择合适的 iOS Mobile Safari Web 开发工具(jQuery Mobile/Sencha Touch/etc)感到沮丧的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS Mobile Safari 和/或 UIWebView 中控制文本选择行为?

无法使用 Node 在 iOS 模拟器中连接到 Mobile Safari

隐藏 Safari 组件时如何使用 jQuery Mobile 从错误加载页面中恢复?

iOS 7 Safari 干扰 jQuery Mobile 页脚

Websql 排队执行 - iOS6 Mobile Safari

ios8 safari 独立网络应用程序在单击选择时崩溃