Soumettre la recherche
Mettre en ligne
手机腾讯网Js资源版本增量更新方案w3ctech
•
Télécharger en tant que PPT, PDF
•
0 j'aime
•
666 vues
L
luyongfugx
Suivre
Technologie
Signaler
Partager
Signaler
Partager
1 sur 25
Télécharger maintenant
Recommandé
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
大话redis设计实现
大话redis设计实现
rfyiamcool
R統計軟體簡介
R統計軟體簡介
Person Lin
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
Shell奇技淫巧
Shell奇技淫巧
David Xie
realtime-twitter-search
realtime-twitter-search
亚军 汪
SSDB 入门基础
SSDB 入门基础
ideawu
微博实时搜索
微博实时搜索
亚军 汪
Recommandé
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
大话redis设计实现
大话redis设计实现
rfyiamcool
R統計軟體簡介
R統計軟體簡介
Person Lin
Bigdata 大資料分析實務 (進階上機課程)
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
Shell奇技淫巧
Shell奇技淫巧
David Xie
realtime-twitter-search
realtime-twitter-search
亚军 汪
SSDB 入门基础
SSDB 入门基础
ideawu
微博实时搜索
微博实时搜索
亚军 汪
SSDB(LevelDB server) vs Redis
SSDB(LevelDB server) vs Redis
ideawu
Hadoop与数据分析
Hadoop与数据分析
George Ang
老舊web上雲端
老舊web上雲端
Ching Yi Chan
分布式系统缓存设计
分布式系统缓存设计
zhujiadun
分布式系统缓存设计
分布式系统缓存设计
aleafs
Huangjing renren
Huangjing renren
d0nn9n
Pytables
Pytables
gowell
20161017 R語言資料分析實務 (2)
20161017 R語言資料分析實務 (2)
羅左欣
MongoDB for C# developer
MongoDB for C# developer
dianming.song
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
Shaoning Pan
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
OpenSourceCamp
Windbg入门
Windbg入门
晓锋 陈
Log analytics
Log analytics
itseo
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
羅左欣
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
20161024 R語言資料分析實務 (3)
20161024 R語言資料分析實務 (3)
羅左欣
Mysql 高级优化之 逻辑处理
Mysql 高级优化之 逻辑处理
nigel889
Maintainable Javascript
Maintainable Javascript
Haixu (Hector) Guo
Mongo db技术分享
Mongo db技术分享
晓锋 陈
Bigtable
Bigtable
Oases Ong
大规模数据处理的那些事儿
大规模数据处理的那些事儿
George Ang
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
George Ang
Contenu connexe
Tendances
SSDB(LevelDB server) vs Redis
SSDB(LevelDB server) vs Redis
ideawu
Hadoop与数据分析
Hadoop与数据分析
George Ang
老舊web上雲端
老舊web上雲端
Ching Yi Chan
分布式系统缓存设计
分布式系统缓存设计
zhujiadun
分布式系统缓存设计
分布式系统缓存设计
aleafs
Huangjing renren
Huangjing renren
d0nn9n
Pytables
Pytables
gowell
20161017 R語言資料分析實務 (2)
20161017 R語言資料分析實務 (2)
羅左欣
MongoDB for C# developer
MongoDB for C# developer
dianming.song
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
Shaoning Pan
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
OpenSourceCamp
Windbg入门
Windbg入门
晓锋 陈
Log analytics
Log analytics
itseo
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
羅左欣
Redis 介绍 -田琪
Redis 介绍 -田琪
Shaoning Pan
20161024 R語言資料分析實務 (3)
20161024 R語言資料分析實務 (3)
羅左欣
Mysql 高级优化之 逻辑处理
Mysql 高级优化之 逻辑处理
nigel889
Maintainable Javascript
Maintainable Javascript
Haixu (Hector) Guo
Mongo db技术分享
Mongo db技术分享
晓锋 陈
Bigtable
Bigtable
Oases Ong
Tendances
(20)
SSDB(LevelDB server) vs Redis
SSDB(LevelDB server) vs Redis
Hadoop与数据分析
Hadoop与数据分析
老舊web上雲端
老舊web上雲端
分布式系统缓存设计
分布式系统缓存设计
分布式系统缓存设计
分布式系统缓存设计
Huangjing renren
Huangjing renren
Pytables
Pytables
20161017 R語言資料分析實務 (2)
20161017 R語言資料分析實務 (2)
MongoDB for C# developer
MongoDB for C# developer
淘宝数据魔方的系统架构 -长林
淘宝数据魔方的系统架构 -长林
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
Windbg入门
Windbg入门
Log analytics
Log analytics
20161003 R語言資料分析實務 (1)
20161003 R語言資料分析實務 (1)
Redis 介绍 -田琪
Redis 介绍 -田琪
20161024 R語言資料分析實務 (3)
20161024 R語言資料分析實務 (3)
Mysql 高级优化之 逻辑处理
Mysql 高级优化之 逻辑处理
Maintainable Javascript
Maintainable Javascript
Mongo db技术分享
Mongo db技术分享
Bigtable
Bigtable
En vedette
大规模数据处理的那些事儿
大规模数据处理的那些事儿
George Ang
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
George Ang
腾讯大讲堂21 搜索引擎优化(seo)简介
腾讯大讲堂21 搜索引擎优化(seo)简介
George Ang
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势
George Ang
Do not crawl in the dust different ur ls similar text
Do not crawl in the dust different ur ls similar text
George Ang
Windows Azure架构探析
Windows Azure架构探析
George Ang
Opinion mining and summarization
Opinion mining and summarization
George Ang
Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
George Ang
Huffman coding
Huffman coding
George Ang
En vedette
(9)
大规模数据处理的那些事儿
大规模数据处理的那些事儿
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂21 搜索引擎优化(seo)简介
腾讯大讲堂21 搜索引擎优化(seo)简介
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势
Do not crawl in the dust different ur ls similar text
Do not crawl in the dust different ur ls similar text
Windows Azure架构探析
Windows Azure架构探析
Opinion mining and summarization
Opinion mining and summarization
Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
Huffman coding
Huffman coding
Similaire à 手机腾讯网Js资源版本增量更新方案w3ctech
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Etu Solution
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
leneli
程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號
鍾誠 陳鍾誠
程式人雜誌 2015年五月
程式人雜誌 2015年五月
鍾誠 陳鍾誠
手把手教你 R 語言分析實務
手把手教你 R 語言分析實務
Helen Afterglow
Enterprise Data Lake in Action
Enterprise Data Lake in Action
Jazz Yao-Tsung Wang
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
Jackson Tian
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
Javascript autoload
Javascript autoload
jay li
Mahout資料分析基礎入門
Mahout資料分析基礎入門
Jhang Raymond
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Mu Chun Wang
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
台灣資料科學年會
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
Chun-Min Chang
Practical Data Analysis in R
Practical Data Analysis in R
Chun-Ming Chang
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Duran Hsieh
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
beehivedata
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
Kejun Zhang
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Chieh Lin
Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
Similaire à 手机腾讯网Js资源版本增量更新方案w3ctech
(20)
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
OPOA in Action -- 使用MagixJS简化WebAPP开发
OPOA in Action -- 使用MagixJS简化WebAPP开发
程式人雜誌 -- 2015 年5月號
程式人雜誌 -- 2015 年5月號
程式人雜誌 2015年五月
程式人雜誌 2015年五月
手把手教你 R 語言分析實務
手把手教你 R 語言分析實務
Enterprise Data Lake in Action
Enterprise Data Lake in Action
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Javascript autoload
Javascript autoload
Mahout資料分析基礎入門
Mahout資料分析基礎入門
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
[系列活動] 手把手教你R語言資料分析實務
[系列活動] 手把手教你R語言資料分析實務
Practical data analysis in R: from data collection to data insight
Practical data analysis in R: from data collection to data insight
Practical Data Analysis in R
Practical Data Analysis in R
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Exam 98-375 HTML5 Application Development Fundamentals
Exam 98-375 HTML5 Application Development Fundamentals
Node.js 進攻桌面開發
Node.js 進攻桌面開發
手机腾讯网Js资源版本增量更新方案w3ctech
1.
手腾手腾 JSJS 源版本
量更新方案资 增源版本 量更新方案资 增 waynelu(t.qq.com/waynelu)waynelu(t.qq.com/waynelu) 2014-042014-04
2.
about meabout me 勇福卢勇福卢
(( wayneluwaynelu )) 微博微博 :: http://t.qq.com/wayneluhttp://t.qq.com/waynelu http://www.weibo.com/u/1849616271http://www.weibo.com/u/1849616271 github:github: https://github.com/luyongfugxhttps://github.com/luyongfugx
3.
提纲提纲 背景和问题背景和问题 传统传统 cdncdn 静
源方式存态资 储静 源方式存态资 储 jsjs html5html5 存 方式存离线 储 储存 方式存离线 储 储 jsjs jsjs 量更新算法增 设计量更新算法增 设计 量更新接入方案增量更新接入方案增 效果实战效果实战
4.
背景和问题背景和问题 2014.3.1-2014.3.312014.3.1-2014.3.31 期 手
的几个间 腾期 手 的几个间 腾 webappwebapp 共 布发共 布发 ::1212 次,次, 布 隔发 间布 隔发 间 ::22 ~~ 33 天,天, 每次修改每次修改 js:js:33 至至 44 个个 jsjs 求请求请 ::22 亿亿多次多次 jsjs 修改修改 :: 基本小于基本小于 5%5% ,不超过,不超过 20%20% 的。的。
5.
背景和问题背景和问题 在快速迭代的敏捷 程中,我 通开发过
们在快速迭代的敏捷 程中,我 通开发过 们 快速更新版本及 响 了用 需求和过 时 应 户快速更新版本及 响 了用 需求和过 时 应 户 bugbug 修 ,但是我 同 也浪 了用 看重的复 们 时 费 户极为修 ,但是我 同 也浪 了用 看重的复 们 时 费 户极为 流量 源!!!资流量 源!!!资
6.
传统传统 cdncdn 静
源方式存态资 储静 源方式存态资 储 jsjs cdn+cdn+ 器浏览器浏览 cachecache 点优点优 :: 1.1. ,容易简单 维护,容易简单 维护 2.304 cache2.304 cache 缺点:缺点: 1.1. 存会 效,用 强制刷新 可能会有缓 实 户 时存会 效,用 强制刷新 可能会有缓 实 户 时 httphttp 求请求请 2.2. 快速迭代版本 程中少量修改,全量更新过快速迭代版本 程中少量修改,全量更新过
7.
html5html5 存 方式存离线
储 储存 方式存离线 储 储 jsjs html5 appcache (html5 appcache ( 存 )离线 储存 )离线 储 点:优点:优 真正的离 ,只有版本更新才会有 求线 请真正的离 ,只有版本更新才会有 求线 请 缺点缺点 :: 1.1. 新版本 用刷新体启 验问题新版本 用刷新体启 验问题 2.2. 于 ,灰度等策略比 施难 维护 较难实于 ,灰度等策略比 施难 维护 较难实 3.3. 快速迭代版本 程中少量修改,全量更新过快速迭代版本 程中少量修改,全量更新过
8.
本地存 模 存储
拟离线 储本地存 模 存储 拟离线 储 可行性可行性 :: 1.1. 大小大小 5m,5m, 一般一般 jsjs 小于小于 1m1m 2.2. 跨域 :问题跨域 :问题 Access-Control-Allow-Origin:*Access-Control-Allow-Origin:* 3.key-value3.key-value 形式本地数据,用形式本地数据,用 evaleval 行执行执 点:优点:优 1.1. 少不必要的减少不必要的减 httphttp 求请求请 ,, 有更新才有 求,省流量请有更新才有 求,省流量请 2.2. 避免离 存 来的子刷新体线 储带 验问题避免离 存 来的子刷新体线 储带 验问题 3.3. 增量更新增量更新 !!
9.
jsjs 增量更新算法设计增量更新算法设计
10.
jsjs 增量更新算法设计增量更新算法设计 旧文件分成旧文件分成 nn
块块 chunk0 chunk1 chunk2 chunk3 chunk4 chunk5 通 找得到增量更新文件过滚动查 chunk0 data1 chunk1 chunk2 data2 chunk3 chunk4 chunk5 最 增量文件表示如下终 : 1,data1,2,3,data2,4,5,6 一步合并 序 得到进 顺 块 : [1,1],data1,[2,2],data2,[4,3] 新文件内容 : chunk0+data1+chunk1+chunk2+data2+chunk3+chunk4+chunk 5
11.
jsjs 增量更新算法设计增量更新算法设计 以以 s=‘1345678abcdefghijklmnopq’s=‘1345678abcdefghijklmnopq’
修改为修改为 aa=‘13456=‘13456ff78abcd78abcd22efghijklmnopq'efghijklmnopq' 例例 度设块长 为度设块长 为 44 ,源文件分成则,源文件分成则 (( 第一行 号,第二行数据块第一行 号,第二行数据块 ):): 最 增量文件表示如下数终 组 : [“a=‘1",2,"f",3,"cd2ef",5,6,7] 一步合并 序 ,可用一个进 顺 块 js 数 表示组 为 [“a=‘1”,[2,1],“f”,[3,1],“cd2ef”,[5,3] s=‘1 3456 78ab cdef ghij klmn opq' 1 2 3 4 5 6 7 新数据 2 新数据 3 新数据 5 6 7 a=‘1 3456 f 78ab cd2ef ghij klmn opq' 通过滚动查找比对,得到新的文件构成如下通过滚动查找比对,得到新的文件构成如下
12.
jsjs 增量更新算法设计增量更新算法设计 /* @param
source/* @param source 是上一个版本内容,是上一个版本内容, return strResult;return strResult; }}
13.
器端更新流程浏览器端更新流程浏览
14.
serverserver 端 之打包工具实现
实现端 之打包工具实现 实现
15.
serverserver 端 之打包工具实现
实现端 之打包工具实现 实现 增量文件和全量文件大小 比对增量文件和全量文件大小 比对 增量文件内容接 :图增量文件内容接 :图
16.
打包工具 方式的 缺点实现
优打包工具 方式的 缺点实现 优 点:优点:优 离 完成,然后直接上线 传离 完成,然后直接上线 传 cdncdn ,跟 方式没有区传统 别,跟 方式没有区传统 别 缺点缺点 :: 只能跨一个版本 增量更新实现只能跨一个版本 增量更新实现 回退版本是需要全量更新对回退版本是需要全量更新对
17.
具体 改实现 进具体
改实现 进 -servlet-servlet 代理代理
18.
具体实现具体实现 -servlet-servlet 代理代理 点:优点:优 1.1.
可跨多个版本增量更新可跨多个版本增量更新 2.2. 回退版本也可以增量回退版本也可以增量 3.3. 无需手 生成增量文件动无需手 生成增量文件动 缺点缺点 :: 需要自己能控制需要自己能控制 cdncdn 源服 器务源服 器务 对对 cdncdn 的的 pushpush 是被 的动是被 的动
19.
手机 网增量更新接入方案腾讯手机 网增量更新接入方案腾讯 MT—MT—
手机 网前端 一框架腾讯 统手机 网前端 一框架腾讯 统 特点:特点: 1.1. 基于基于 AMDAMD 的的 jsjs 模 管理加 器块 载模 管理加 器块 载 2.2. 无 接入本地存 ,缝 储无 接入本地存 ,缝 储 jsjs 增量更新,兼容增量更新,兼容 一版本和 个统 单一版本和 个统 单 jsjs 文件 个版本 版本管单 两种文件 个版本 版本管单 两种 理方式理方式 3.mtbuild3.mtbuild 增量文件生成工具,增量文件生成工具, infocdninfocdn 手手 腾腾 jsjs 增量更新增量更新 cdncdn 源源
20.
第三方模 管理工具插件块第三方模 管理工具插件块 seajs:seajs: storeincstoreinc
,, seajsseajs 增量更新插件增量更新插件 ,, 配套配套 spm-storeinc-buildspm-storeinc-build 来 打包混实现来 打包混实现 淆淆 requirejs:requirejs: rstoreincrstoreinc ,, requirejsrequirejs 增量更新插件,配套有修改后的混淆打包工具增量更新插件,配套有修改后的混淆打包工具 r.jsr.js 量文件生成代理增量文件生成代理增 :: phpphp 版:版: storeinc.phpstoreinc.php NodejsNodejs 版版 : storeincServer.js: storeincServer.js 算法版:纯算法版:纯 makeinc.js,merge.jsmakeinc.js,merge.js
21.
我 正在 建的一个
源 目们 筹 开 项我 正在 建的一个 源 目们 筹 开 项 网址:网址: http://mt.tencent.comhttp://mt.tencent.com Github:Github: https://github.com/mtjs/mthttps://github.com/mtjs/mt
22.
效果实战效果实战 目前接入增量更新的目前接入增量更新的 webapp:webapp: 手 掌上
典腾 车手 掌上 典腾 车 手 秀腾 车手 秀腾 车 手腾手腾 nbanba 手 影腾爱电手 影腾爱电 手 个人中心腾手 个人中心腾 手腾阅读手腾阅读 手 体育猜 。。。。。。。腾 图手 体育猜 。。。。。。。腾 图 详见详见 http://4g.qq.comhttp://4g.qq.com 里的 用轻应里的 用轻应
23.
实战实战效果效果 秀 ,掌上 典,掌上车
车秀 ,掌上 典,掌上车 车 NBANBA 几个几个 webappwebapp 的的 jsjs 源 求方式占比资 请源 求方式占比资 请
24.
效果实战效果实战 2014.3.1-2014.3.312014.3.1-2014.3.31 手 的几个腾手
的几个腾 webappwebapp jsjs 请求:请求: 22 亿亿多次多次 地存储读取:地存储读取: 11 千千 55 百万百万 全量请求:全量请求: 44 千万千万次次 增量更新请求增量更新请求 ::22 千千 33 百万百万次次 平均每个增量命中比全量节省平均每个增量命中比全量节省 10k10k 数据,通过增量数据,通过增量 更更 新我们大概为用户节省流量新我们大概为用户节省流量:: (( 23000000*1023000000*10 )) /(1024*1024)=219G/(1024*1024)=219G
25.
ENDEND 无更新不下 !!!载 Q&AQ&A
Télécharger maintenant