手移H5前端优化及创意功能排坑技巧

2018-03-12  本文已影响15人  revert
原文链接

移动互联网的发展迅猛,无论在移动游戏、手机购物、各种O2O的方式,都有各种变革;手设备硬件和系统不断升级和改进对HTML5的支持也越来越好,更多的创意效果在移动设备上得到了支持,更多的创意页面也闪亮的出现在我们眼前~~!
而创意的页面除了设计上的视觉表现外对于前端开发者来说存在更多的挑战,移动端页面开发过程中会碰到各种各样千奇百怪的问题(俗称:BUG或坑)~于是就与大家伙一起分享关于移动端H5前端的知识,希望能给伙伴们带来一些帮助吧!


一、移动前端的性能优化
  1. 加载优化
    加载过程是最为耗时的过程,可能会占到总耗时的80%时间,因此是优化的重点
    方法:
  1. 脚本执行优化
    脚本处理不当会阻塞页面加载、渲染,因此在使用时需注意:
  1. CSS优化
  1. JavaScript执行优化

总结:
1、PC优化手段在Mobile侧同样适用
2、在Mobile侧我们提出三秒钟渲染完成首屏指标
3、基于第二点,首屏加载3秒完成或使用Loading
4、基于联通3G网络平均338KB/s(2.71MB/s),所以首屏资源不应超过1014KB
5、Mobile侧因手机配置原因,除加载外渲染速度也是优化重点
6、基于第五点,要合理处理代码减少渲染损耗
7、基于第二、第五点,所有影响首屏加载和渲染的代码应在处理逻辑中后置
8、加载完成后用户交互使用时也需要注意性能


二、排坑技巧

对于前端来说移动端存在更多的挑战,移动端页面开发过程中会碰到各种各样千奇百怪的问题,不同设备、不同操作系统、不同运行环境下都可能造成各种各样的没有碰到过的坑。
首先聊聊4类常见的

  1. 页面高度渲染错误

    在各移动端浏览器中经常会出现这种页面高度100%的渲染错误,页面底端和系统自带的导航重合了,高度的不正确我们需要重置修正它,通过javascript代码重置:
    document.documentElement.style.height=window.innerHeight+"px";
  2. 叠加区高亮

    在部分android机型中点击页面某一块区域可能会出现如图所示的黄色框秒闪,这是部分机型系统自身的默认定制样式,给该元素一个CSS样式重置掉:
    -webkit-tap-highlight-color:rgba(0,0,0,0);
  3. 事件无法被触发

    在部分android机型的微信环境中会出现事件无法触发、表单无法输入的情况,我们针对需要输入或者触发事件的元素设置样式:
    -webkit-transform:translate3d(0,0,0);
    不过新版的微信已经直接修复了该问题
  4. active效果不兼容
    在android 4.0版本以下css:active伪状态效果无法兼容,我们给该元素的touch系列的事件(touchstart/touchend/touchmove)绑定一个空匿名方法:
element.addeventlistener("touchstart",function(){},false);
  1. 预加载、自动播放无效
    经过简单的测试发现预加载、自动播放的有效性受操作系统、浏览器、版本等的影响,苹果官方规定必须由用户手动触动才会载入音频,那么我们可以捕捉一次用户输入后,让音频加载实现预加载
document.addeventlistener("touchstart,"function(){document.getelementsbytagname("autio"[0].play();document.getelementsbytagname("autio"
[0].pause();})
  1. 无法同时播放多音频
    在android设备中,播放后:音频会打断前音频,而不会同步播放,这个是目前系统自身决定的,我们只有采取优雅降权的方法让android选择不一样风格的音频前后切换播放而不是同时播放,达到与预期接近的音频效果。
  2. 不支持局部滚动



    在android 4.0版本以下在body(html)元素之外的元素 overflow:scroll样式设置滚动条无效
    建议两种解决方案:


除了以上这些坑,还有各种各样的坑,就不一一讲解了~不过解决这些坑自身的心态和执行力很重要;
对于未知的坑的解决问题,这里就分享一些方式骤及技巧:

世上本无路,走的人多了就变成的了路;无穷无尽的坑,走的多了,总结改进次数多了,坑也就越来越平了;

上一篇 下一篇

猜你喜欢

热点阅读