您对RhoMobile + JqueryMobile + KnockoutJS的体验如何?

时间:2012-01-19 17:26:23

标签: android blackberry ios5 jquery-mobile rhomobile

我和我的团队一直致力于使用RhoMobile + JqueryMobile + KnockoutJS为我们的组织构建多个跨平台(BlackBerry,Android,iOS)移动应用程序。考虑到当今跨平台移动应用程序开发的状态,开发经验是可以接受的。在移动设备上使用应用程序时,挫折感开始出现。性能问题是我们目前的头号痛点。我不希望这是一个咆哮,但我想知道别人做了什么来缓解性能问题。具体而言,BlackBerry设备上的性能问题。我试过了solutions recommended in the RhoMobile docs。也许社区可以提供其他提示。我感谢您提供的任何反馈。

2 个答案:

答案 0 :(得分:1)

我只有Jquery移动版的经验,虽然我喜欢快节奏的开发,但是如果我有时间的话,我总是编写一个原生应用程序代码。由于Safari的CSS3支持,Jquery移动应用程序在iOS设备上运行得最好。像幻灯片这样的动画在Android浏览器上非常不稳定,在Blackberry的浏览器上非常粗制滥造。

除此之外,Jquery移动设备基本上不会切换页面。每次你请求一个新的页面(通过一个超链接或其他),它通过一个AJAX请求获取页面并将其插入当前页面的DOM(你可以明确地要求这不会发生,但你不能'滑动'到另一个页)。这种导航形式在长时间的导航链之后会导致问题。更不用说,您必须非常小心,整个应用程序中没有两个元素共享相同的ID。

我将这个Jquery移动应用程序作为学校项目的演示,因此它满足了我所需要的目的:快速开发并且它可以作为概念证明。

然而,对于我自己公司的产品,我们正在开发移动应用程序,除此之外我永远不会使用本机应用程序。开发需要花费更长的时间,因此这取决于您的要求。

除了您的评论:

单独使用Jquery无法完成Jquery Mobile所做的任何事情。但是,使用jquery,如果你添加CSS3动画,使用单DOM导航样式等,你将遇到同样的问题。问题不在于Jquery mobile。问题是,很少有移动浏览器可以处理Jq mobile使用的效果。就像我说的,iPhone做得很好。这部分是因为Safari 3的CSS 3实现,主要是因为iOS优先考虑后台工作者之上的UI线程。

答案 1 :(得分:1)

  1. 从CSS中删除box-shadowtext-shadow,这会让网页速度变慢。
  2. 您还可以将-hover-down类设置为与其衍生产品相同,以便在您点按元素时浏览器不必重绘页面(例如{{1滚动时(这使我在Android 2.3设备上的滚动更加顺畅)。
  3. 删除阴影:

    listview

    要使.ui-shadow, .ui-btn-up-a, .ui-btn-hover-a, .ui-btn-down-a, .ui-body-b, .ui-btn-up-b, .ui-btn-hover-b, .ui-btn-down-b, .ui-bar-c, .ui-body-c, .ui-btn-up-c, .ui-btn-hover-c, .ui-btn-down-c, .ui-bar-c, .ui-body-d, .ui-btn-up-d, .ui-btn-hover-d, .ui-btn-down-d, .ui-bar-d, .ui-body-e, .ui-btn-up-e, .ui-btn-hover-e, .ui-btn-down-e, .ui-bar-e, .ui-overlay-shadow, .ui-shadow, .ui-btn-active, .ui-body-a, .ui-bar-a { text-shadow: none; box-shadow: none; -webkit-box-shadow: none; } 类相同,您需要更改这样的样式:

    -hover

    与它的衍生物相同(在这种情况下是.ui-btn-hover-a { border: 1px solid #000 ; background: #444444 ; font-weight: bold; color: #fff ; text-shadow: 0 -1px 1px #000 ; background-image: -webkit-gradient(linear, left top, left bottom, from( #666 ), to( #444 )); background-image: -webkit-linear-gradient( #666 , #444 ); background-image: -moz-linear-gradient( #666 , #444 ); background-image: -ms-linear-gradient( #666 , #444 ); background-image: -o-linear-gradient( #666 , #444 ); background-image: linear-gradient( #666 , #444 ); } ):

    .ui-btn-up-a

    您还可以对在元素上发生.ui-btn-hover-a { border: 1px solid #222 ; background: #333333 ; font-weight: bold; color: #fff ; text-shadow: 0 -1px 1px #000 ; background-image: -webkit-gradient(linear, left top, left bottom, from( #555 ), to( #333 )); background-image: -webkit-linear-gradient( #555 , #333 ); background-image: -moz-linear-gradient( #555 , #333 ); background-image: -ms-linear-gradient( #555 , #333 ); background-image: -o-linear-gradient( #555 , #333 ); background-image: linear-gradient( #555 , #333 ); } 事件时触发的-down类执行此操作:

    tap

    以下是jQuery Mobile 1.0 CSS样式表的非缩小版本的链接:http://code.jquery.com/mobile/latest/jquery.mobile.css