红联Linux门户
Linux帮助

腾讯移动前端框架mt 2.0发布

发布时间:2014-06-11 16:25:21来源:红联作者:empast
MT是手机腾讯网前端团队开发维护的一个专注于移动端的js模块管理框架。

Git:http://git.oschina.net/luyongfugx/mt
mt介绍文档:http://mt.tencent.com/mt1index.html

为什么使用MT

无更新不下载

简单友好的模块定义规范

简单易用的打包管理工具

强大的js增量更新代理服务

MT2.0新增特性

本地存储异常回调

统计回调

combo支持

新增LCS增量算法

1. 本地存储异常,统计回调

设置回调

通过设施g_config的storeInc对象的statFunc,storeExFunc两个函数,可以设置统计和本地存储异常回调 , statFunc在请求每个js的时候触发,便于统计每个js的请求情况,storeExFunc在写本地存储异常回调, 将脚本内容写入本地存储出现异常的时候调用,用来提供给业务清理本地存储。

2. combo支持

冷combo

冷combo就是在打包混淆的时候把多个不同的模块打包进同一个js,前台下载的时候直接下载这个js 这个MT1.0已经支持

热combo,半热combo

半热combo是相对冷combo来说的,除了走打包实现冷combo以外,我们还支持通过前台配置来实现半热combo或热combo

我们设置了combo的cb为true,说明走combo. conf的配置则设置了哪些模块是要走combo一起下载的, 即使打包脚本没有把他们打在一起。 为了看效果,我们先把cb设为false,conf设置为空数组,表示不走combo

3. 新增基于lcs算法的增量更新

MT1.0的增量更新是基于chunk算法来实现的,精确度是到块级别的。后来很多朋友给我意见,说其实可以做得更加精确一些,精确到字符级别。 于是我用lcs算法实现了精确到字符级别的设计,最后这个demo也可以看作是整个MT2.0的使用方法

首先到我们的github:https://github.com/mtjs/mt下载代码,然后看mt2.0文件夹下的demo目录,里面有个test.html

本地打包

我们运行demo目录下的build.sh ,其实是执行命令

node ../js/mtbuild.js test.html build.conf lcs

第三个参数说明走lcs增量更新算法,你也可以设置成chunk走老算法

启动增量服务

到js目录下执行命令

node storeincServer.js lcs ../demo

第2个参数说明走lcs增量更新算法,你也可以设置成chunk走老算法,第三个参数是根目录,这里设置成../demo

效果演示

打开chrome(必须支持localstorage),输入地址:http://localhost:6600/test.html,可以看到请求的是全量的js

重新运行命令

node ../js/mtbuild.js test.html build.conf lcs

这时候生成2014053000003版本代码,打开chrome(必须支持localstorage), 输入地址:http://localhost:6600/test.html,这时候可以看到请求的内容是增量的,并且精确到了字符级别:

我们来看下同样是这个修改,如果我们走chunk算法,会是什么样子。 我们需要重新走一遍上边的流程,但是把build.sh命令的lcs参数改成chunk,启动storeincServer时的lcs也改成chunk, 这里就不罗嗦步骤了,我们直接看看走chunk是的网络请求。

发现相对lcs算法,chunk的精确度是比较差的,所以推荐使用lcs算法。

项目主页:http://mt.tencent.com/

下载地址:http://git.oschina.net/luyongfugx/mt

来自:开源中国社区
文章评论

共有 2 条评论

  1. yilons 于 2014-06-16 08:45:58发表:

    2# 544897909


    有道理

  2. 544897909 于 2014-06-16 00:05:52发表:

    太难了,能不能简单点的(6)m:b