当前位置:  软件>java软件

静态资源增量更新 hcliuLoad

    来源:    发布时间:2014-12-21

    本文导语:  依赖node.js环境 依赖java环境node.js 安装http://nodejs.org/ 下载最新版本安装安装完成后 在windows的命令行 输入 node回车如果成功进入node环境 则说明安装正确java 安装http://www.java.com/zh_CN/download/manual.jsp#win工具所有配置文件为不严格的...

依赖node.js环境 依赖java环境
node.js 安装
http://nodejs.org/ 下载最新版本安装
安装完成后 在windows的命令行 输入 node回车
如果成功进入node环境 则说明安装正确

java 安装
http://www.java.com/zh_CN/download/manual.jsp#win

工具所有配置文件为不严格的json格式(不要求键名使用双引号 键名和值都可以使用单引号等等);
成功打包后程序自动退出
打包失败后程序暂停并提示 等待用户关闭
只能同时运行一个打包程序 否则会提示用户


下载最新版本安装
安装完成后 在windows的命令行 输入 java回车
如果显示java帮助回显 则说明安装正确

使用方法:
    node c:buildbuild.js d:infonewsbuild.conf d:infonewsver.conf
    第二个参数为本工具所在路径
    第三个参数为项目打包配置路径
    第四个参数为项目静态资源版本配置路径

工具配置:
    setting.conf
        // yui jar包路径
        cssCompiler: './lib/yuicompressor-2.4.7.jar',
        // google cloure jar包路径
        jsCompiler: './lib/compiler.jar',
        // 临时文件目录
        temp: '_temp'

项目配置:
    ver.conf: 版本配置 (此处只需第一次使用时配置 以后会自动更新)
        // 当前版本 前7位是日期 后面两位是个人标识 后三位是此项目今天第几次打包,打包程序会每次把后3为加1,
        //前端load程序会判断后三位间隔是否为1,只有为1才启用增量更新,否则使用全量,如果不支持loadstorage,
        //则程序会自动切换到script标签模式加载
        ver: '2013051401067',
        // 个人标识
        personalFlag: '01',

    build.conf: 打包配置 (此文件上传到svn 在项目内共享)
        {
        // 键名为目标文件 {ver}会替换成版本号 {md5}会计算文件md5
        './release/client-{ver}.js': {
                //增量更新算法中块的大小,具体看原理文档
            chunkSize:12,
            // files 为需要合并的文件 支持本地路径 和 http url
            files:['client.js']
            }
        }

 以client.js为例,第一个版本运行build.bat后会在release目录生成client-2013062801001.js,
 第二次发布修改了client.js,运行buile.bat,会生成client-2013062801001_2013062801002.js,
 client-2013062801002.js
 在需要引入这个的js里面首先需要引入hcliuLoad.js
 
 然后:

/*
@param url js地址,参数表版本号
@param store 表示是否存入localstorage
@param mode 表示更新模式,只有store为true的时候才有作用,inc 为true表示增量更新,为false表示全亮更新,function是callback函数

hcliuRequire.load({"url":"http://test.com/client.js?2013062801002","store":true,"inc":true},function(){alert("load callback!")});
*/
hcliuLoad.load({"url":"http://test.com/client.js?2013062801002","store":true,"inc":true},function(){alert("load callback!")});

这样前段会根据规则引入client-2013062801001_2013062801002.js或者 client-2013062801002.js
如果上一个版本有本地存储,且后三位版本号间隔为1,则引入client-2013062801001_2013062801002.js,并跟老文件合并成新的js,存入本地存储
否则引入client-2013062801002.js进行全量更新


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个基本概念问题:静态函数只能调用静态方法,类的成员函数也是静态的吗?
  • linux中静态链接库调用了另一个静态链接库
  • 如何 用一个静态库 生成 另一个静态库
  • 请教:(static)静态变量和静态方法是什么意思?
  • 有把两个静态库.a合成一个静态库的简单方法吗
  • linux 生成静态库的时候怎么连接别的静态库
  • 静态博客 静态blog
  • 静态库动态库同时存在时,如何指定使用静态库
  • C# 静态方法与非静态方法的区别分析
  • 如何在一个静态链接库中链接另一个静态链接库?
  • gcc的静态库.lib怎末在编译的时候连接。对了静态库是自己的???
  • PHP static局部静态变量和全局静态变量总结
  • c#静态方法和非静态方法详细介绍
  • 在静态上下文中不能引用非静态方法test(),天啊,为什么我的main()不能调用任何其它函数?
  • 静态函数,静态变量
  • java有无像vb那样的静态变量?java的staic是类的属性,那末,静态变量如何声明?
  • c++静态局部变量和静态函数示例
  • 一个静态库包含多个函数,应用程序连接了库中的某个函数,应用程序目标代码中是否还包含了该静态库中的其他函数代码?
  • 关于C++静态成员函数访问非静态成员变量的问题
  • 急求静态库引用静态库,该如何编译链接!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3