我和我的团队一直致力于使用RhoMobile + JqueryMobile + KnockoutJS为我们的组织构建多个跨平台(BlackBerry,Android,iOS)移动应用程序。考虑到当今跨平台移动应用程序开发的状态,开发经验是可以接受的。在移动设备上使用应用程序时,挫折感开始出现。性能问题是我们目前的头号痛点。我不希望这是一个咆哮,但我想知道别人做了什么来缓解性能问题。具体而言,BlackBerry设备上的性能问题。我试过了solutions recommended in the RhoMobile docs。也许社区可以提供其他提示。我感谢您提供的任何反馈。
答案 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)
box-shadow
和text-shadow
,这会让网页速度变慢。-hover
和-down
类设置为与其衍生产品相同,以便在您点按元素时浏览器不必重绘页面(例如{{1滚动时(这使我在Android 2.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