zoukankan      html  css  js  c++  java
  • !前端优化

    http://www.cnblogs.com/wingkun/p/6014259.html  更快速将你的页面展示给用户[前端优化篇]

    http://dev.qq.com/topic/57908635c9da73584b02587f  H5前端性能测试快速入门

    http://www.imooc.com/learn/566  AC2015前端技术大会,多名AlloyTeam优秀讲师分享

    http://www.alloyteam.com/  鹅厂Web前端团队  http://alloyteam.github.io/

    https://juejin.im/post/5a1b9cc051882560e35659e6  [web前端性能优化]性能优化只有三步,你了解吗  2017-12-8


    前端优化

    减少请求数
    减少传输体积
    尽可能地利用缓存
    缩短关键路径
    合理安排请求顺序

    首页优化

    首页按需加载

    异步渲染

    异步资源打包优化

    服务器端渲染,组件前后端同构

    DNS相关

    一是减少DNS的请求次数,二是进行DNS预获取  <link rel="dns-prefetch" href="//baidu.com" />

    离线包

    /*离线可访问
    永久的资源缓存
    动态增量更新
    安全校验
    预下载&推送*/

    图片优化

    图片懒加载 (快到可视区域时,就会进行图片的拉取渲染)

    图片详情页,可以先显示图片列表页的小型缩略图,再用高清图片替换。

    高访问量页面首屏(js被合并到一个文件中,文件过大,但并不是首屏所需的资源)——那么就分离组件,区分环境延后加载,比如把web组件和native组件分开

    首屏数据展示耗时优化  ——方案总结

    localStorage缓存数据优先展示 —— 加快首屏数据展示
    jsonp预拉取数据 —— 减少二次渲染,加快首屏数据显示
    按需延时加载非必须资源 —— 减少首屏资源体积
    通用数据、图片内容共享 —— 加快可通用部分数据渲染
    跨webview预拉取数据 —— 利用webview创建时间加载首屏数据,加快首屏数据展示

    列表项页面

    1)动态首页列表项,要人为限制他们最多50条

    2)列表页,数量无限制  ——当页面较重时,会出现iScroll局部滚动卡顿问题。

    局部滚动常列表的优化

    iScroll卡顿的原因

    1)需要通过监听手势去模拟滚动(包括滚动的加减速,惯性效果)
    2)需要移动一个拥有dom数量较多的层

    div滚动比iScroll滚动平均FPS提升约40%,并且更稳定。但滚动快容易出现闪白

    局部滚动长列表的优化  ——方案总结

    直接使用div局部滚动 ———— 数据多的时候一些机型容易出现花屏
    div局部滚动联动内容层 ———— 小米机器上样式更新仅发生在滚动结束的时候
    滚动过程中删除不可视区域dom ———— 删除瞬间触发layout,造成卡顿
    Canvas模拟滚动 ———— 不通机型绘制性能不一样,并且存在无障碍化兼容问题
    translate复用dom ———— 滚动更流畅,限定dom在一定数量(选用这种,见下面代码示例。)

    在滚动过程中不断复用已有的dom,使页面dom元素始终维持在一屏的数量。
    <ul style="height:500px;">
    <li style="position:absolute;-webkit-transform:translateY(0px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(100px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(200px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(300px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(400px) translateZ(0px);"></li>
    </ul>
    <ul style="height:500px;">
    <li style="position:absolute;-webkit-transform:translateY(500px) translateZ(0px);">移出屏幕的列表dom元素补位到最后</li>
    <li style="position:absolute;-webkit-transform:translateY(100px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(200px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(300px) translateZ(0px);"></li>
    <li style="position:absolute;-webkit-transform:translateY(400px) translateZ(0px);"></li>
    </ul>

     对于7~8页的列表,换成div局部滚动比iscroll平均FPS提升43%,并且更稳定。

    Abstract生态   https://github.com/dorsywang/Abstract.js  随便看看

    选择怎样的架构和生态?(玩技术、做需求、业务主导、技术主导)

    逻辑引擎、模板引擎、模块规范、构建流、测试工具

    待补充...

  • 相关阅读:
    JS小技巧总汇
    [转贴]聪明人如何拯救你的职业困
    Button按钮多行显示的实现方法
    事件和委托
    支持~
    关于递归
    Android 资源的国际化
    Android 文件的浏览(类似于FileDialog的功能)
    Android 开发TCP、UdP客户端
    Android 为什么现在google不让结束整个程序,只让结束单个Activity(转)
  • 原文地址:https://www.cnblogs.com/qq21270/p/6719966.html
Copyright © 2011-2022 走看看