-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mobile开发经验沉淀 #2
Comments
组织形式可以用问答的方式吧。 一个帖子逻辑扩展性比较差。 |
@webryan 先在这里沉淀,多个帖子不太好找,可以在这里讨论,知识的整理在基于这里的沉淀。看讨论过程也是一中享受。而且这里有个好处可以看到历史的脚印。 |
在 @litten 这块知识体系没建立之前,先这么搞吧。 合理的方式应该是知识拓扑图和帖子、文章建立映射即可。 |
IOS7白屏Bug产生原因:IOS7中,如果html header 返回了cache-control:max-age=0(或者no-cache),这个时候Browser不会cache页面,但浏览器每次请求都会携带请求头(If-Modified-Since或者If-None-Match)。如果此时服务器刚好没有修改的话,会识别成304给Browser,此时前面已提到过Browser没有缓存页面内容,导致取不到页面而白屏。详细Bug描述猛戳这里。 解决办法
|
@herbertliu 这块我感觉另开一个repository,用rm的形式沉淀性会更好,大家也更好修改和提交。 |
@litten 他这个已经是总结的了,总结的是基于这个讨论梳理出来的。现有讨论沉淀,然后才有梳理。我们到时候梳理会形成知识图(形成repository)。主要是有些需要讨论的,可以在这里进行一个讨论。 |
md的确更适合展示,先沉淀到这里吧。后面会整理一下的。 发现at没了yuanyan,战斗力差了好多 |
Android2.3下transform失效Android 2.3某些页面的transform失效, 导致rotate等属性无效, 可以通过user-scale=yes部分解决. 腾讯播放器使用时遇到的坑
|
[经验沉淀]多页面更新在移动端比较偏向于新开页面来处理一些事情,另外移动端的操作环境只有返回上一层和home两个操作,因此用户会经常回退到之前的页面,所以往往需要旧页面可以自动更新数据,而产品一般不会提到这些细节,所以需要开发自己保持这种习惯,不然会有很多这个bug和工作量留到测试阶段。目前有两种解决方案:
|
[经验沉淀]tap点透问题产生条件如果绑定tap方法的dom元素在tap方法触发后会被干掉(隐藏,移走,删掉),则它底下同一位置的dom元素会触发click事件、或者有浏览器认为可以被点击有交互反应的dom元素(例如input的focus事件),这个称为“点透”现象。 产生原因
解决方案
|
[机型兼容][IOS]position:fixed + input问题当input获得焦点并弹出虚拟键盘时,页面上position:fixed的元素的位置会错乱。 解决方案
|
[机型兼容][IOS8]闪屏问题大面积的页面内刷新时出现,这种闪屏不是位置错乱的那种闪屏,具体原因不详 规避方案
|
[经验沉淀]别忘了点击态就像pc端的3态,在移动端需要点击态,移动端的点击态实现是点击时添加一个active类,300ms后去掉,建议把点击态放到移动端视觉检查项中 |
[经验沉淀]页面的各种状态这些状态pc端也会用到,不过在移动端会更为需要,因为移动端网络延迟高并且不稳定。建议是把页面的各种状态抽象为组件,并整合在一个组件中统一管理会比较好,这个待优化,现总结页面中会出现的各种状态:
|
[经验沉淀]cgi添加localstorage逻辑之后需要注意的地方
|
[机型兼容][IOS 5+]快速回弹滚动问题IOS5新特性webkit-overflow-scrolling: touch可以启动快速回弹滚动(fast bounce-scroll)效果,但是它会阻止渲染直到滚动结束。 影响
解决方案
ps: 【[机型兼容][IOS8]闪屏问题】的根本原因 |
[机型兼容][iOS] 部分图片不缓存经过排查, 图片大于1M的情况下, 并且开启了crossOrigin, 就会导致浏览器不缓存该图片. 解决方法是:
|
@ousiri 图片不缓存,有哪些机型有问题? |
iOS~~~~ |
弹出框中的滚动事件冒泡导致body也滚动
function lockBody() {
$body.css({
height: "100%",
overflow: "hidden"
});
$html.css({
height: "100%",
overflow: "hidden"
});
}
function unlockBody() {
$body.css({
height: "auto",
overflow: "auto"
});
$html.css({
height: "auto",
overflow: "auto"
});
} 这种方案最先想到,但这种方案比较麻烦,需要使用js在对话框显示与关闭时更改元素的css,性能会受影响。
<body>
<div class="scroll-wrapper">
<div class="banner">
banner
</div>
<div class="content">
<p>p </p>
</div>
</div>
<div id="mask">
</div>
<div class="dialog">
<div class="dialog-head">
</div>
<div class="dialog-body">
<ul>
<li>aaaaaaaaa</li>
</ul>
</div>
<div class="dialog-foot">
<a href="javascript:;">确定</a>
<a class="close" href="javascript:;">关闭</a>
</div>
</div>
<script src="zepto.js" ></script>
<script src="index.js" ></script>
</body> CSS: .scroll-wrapper {
height: 100%;
width: 100%;
overflow: scroll;
}
html, body {
height: 100%;
overflow: hidden;
} 这种方法不需要使用js逻辑来控制,只用加一个div元素并设置相应的css进行控制。 测试源代码:https://github.com/coolriver/webTest/tree/master/mobileH5/dialogScroll |
我是用的iscroll解决的上述问题 |
@chshouyu iscroll模拟滚动,自然就不会有这个问题了,只是iscroll在很多android机型下有性能上的影响,而且在ios下不如原生的流畅,所以除非是必须要用iscroll(比如:需要监听滚动事件等),才会将原生滚动换成iscroll。 |
这两种解决方案在ios上表现都不太好,ios上滚动没有惯性动画了啊。感觉这种方法搭配iscroll,根据操作系统选择使用的方法更好些?我最后用的也是iscroll |
@banyaner 在实际业务中,确实需要根据场景做一些不同的处理。比如说浮层的场景,整个dom的场景都不一样,根据场景不同。另外不同平台的考虑也需要。总之,方案有这些,需要不同场景选择合适的方案。 |
[疑难问题]IOS 中微信浏览器中滚动事件触发多次,导致数据重复加载。
|
在手Q开发过程中,遇到各种问题,解决之后沉淀如下,细分为:
1、经验沉淀:开发过程怎么快速开发并在开发过程中可以兼顾到一些场景的出现
2、疑难问题:一些机型出现的疑难问题,如和解决,以及对应的机型等问题详细描述(截图)
The text was updated successfully, but these errors were encountered: