京东首页前端架构设计.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
京东首页前端架构设计

工程化 Windows可视化工具 * 工程化 前端模块构建平台 * 总结 * QA * * JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com 谢谢! 京东首页前端架构设计 刘威 2015年11月22日 关于我 刘威 (@putaoshu:微博,微信,github) 现就职于京东用户体验设计部(JDC),负责前端架构组 曾工作于百度、新浪 * 大纲 面临挑战 页面静态化 加载策略 灾备策略 性能优化 移动端兼容 开发模式 工程化 面临挑战 * 面临挑战 大流量高并发 页面Dom元素剧增 楼层tab标签由5个到9个 页面整体高度翻倍 由4820到9862px 页面图片量增加 80%的位置是图片展示 首屏加载时间要有保证 加载时间不能增加 … * 页面静态化 * 页面静态化 * 加载策略 一般的前端页面加载策略 后端从数据库取出数据,拼装好页面,浏览器加载页面所有HTML元素,并对图片懒加载(lazyload) * 加载策略 我们的加载策略 楼层异步加载+本地缓存 把页面按楼层进行拆分,把首屏做为页面框架主体,每个楼层的数据,单独做成数据接口,异步加载。 给每个楼层设置默认高度,到达这个区域时请求当前楼层数据文件,对楼层数据文件进行md5(即data-time),并把楼层数据和data-time localStorage至本地,如果页面上的data-time和本地的data-time值一样,直接取localStorage,如果不一样,才重新ajax请求数据 流程图如下 * 加载策略 * 加载策略 楼层初始化 楼层数据:包括html结构和当前楼层的脚本 请求的数据渲染到页面,并且初始化楼层脚本 具体代码 div class=w floor lazy-fn data-title=美妆 id=lazy-cosmetics data-path=floor2-floor_index.js data-time=c64202ba3511eea016b9053308cbffa9/div div class=w floor lazy-fn data-title=服饰 id=lazy-clothes data-path=floor1-floor_index.js data-time=5e0c42256f2fe7b4394edf7cb526a9ad/div * 加载策略 好处 大大降低首屏页面内容大小,缩短页面加载完成时间 页面大约共有3288个元素:首屏846+楼层2442 只加载首屏,可减少74%元素量 数据接口优先请求走本地localStorage,减少后台服务器压力 楼层之间数据和脚本完全解耦 非常有利于后期维护 可随意定时上线和下线运营楼层,比如618大促 * 加载策略 * 灾备策略 * 灾备策略 1.本地缓存 接口挂掉,优先使用本地localStorage的缓存数据 2.二次请求 本地无localStorage缓存数据,再次发出请求 3.双层接口 部分接口会上线至CDN,优先使用CDN接口,X秒未请求到数据,再次请求时才用源接口 4.垫底数据 实时推荐数据接口,布署在集群上,数据实时更新,不能使用服务器缓存和本地缓存,接口一旦挂掉,此时需要使用预设好的垫底数据 5.接口下线 必要时候,下线非核心业务接口和非核心功能 * 性能优化 CSS样式文件内联(CDN) 基调网络ABTest,内联比外联可用性高5% CSS sprite JS combo /??a.js,b.js CSS/JS/images压缩 * 移动端兼容 对移动端进行了特殊优化和处理,焦点图iPad效果展示 * 开发模式 团队协作 多人并行开发 业务拆分 顶/尾部:公共头尾 首屏:焦点图 二屏:分楼层 widget模块化开发 vm/js/scss/json * 工程化 JDF定义 京东前端集成解决方案,包括命令行工具,前端模块,开发流程,前端组件,前端文档。 github:/putaoshu/jdf/ * 工程化 JDF工具进展 图片支持转换为Base64 在PC端调试H5页面(内嵌weinre远程调试工具) 压缩js/css/png可使用多线程(减少多文件项目压缩时间) 优化node-sass、ws等依赖node-gyp的模块,独立封装,提高安装速度 widget模块依赖自动下载安装 支持文件格式化(htmllint、csslint、jslint) * JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com JD.com 谢谢! * *

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档