SeaJS 里版本号和时间戳管理的最佳实践
2015-12-28 00:00
731 查看
摘要: SeaJS 里版本号和时间戳管理的最佳实践
http://lifesinger.wordpress.com/2011/08/01/best-practice-of-version-management/
用 seajs 组织项目,上线后,经常需要更新特定文件或所有文件的时间戳,以清空浏览器缓存。最简单的方式是:
这种方式很简单直观,弊端也很明显:文件一多,时间戳会分散在各个文件,维护起来不方便。
第二种方式是利用 alias:
这种方式用来维护 jquery 等类库模块的版本号是非常方便的。但用来加时间戳,文件一多时,依旧不方便。
第三种方式是利用 map:
这种方式,用来批量更新时间戳是最方便的。
http://lifesinger.wordpress.com/2011/08/01/best-practice-of-version-management/
SeaJS 里版本号和时间戳管理的最佳实践
with 24 comments用 seajs 组织项目,上线后,经常需要更新特定文件或所有文件的时间戳,以清空浏览器缓存。最简单的方式是:
define(function(require, exports) { var a = require('path/to/a.js?20110801'); });
这种方式很简单直观,弊端也很明显:文件一多,时间戳会分散在各个文件,维护起来不方便。
第二种方式是利用 alias:
seajs.config({ alias: { 'jquery': 'jquery/1.6.2/jquery', 'backbone': 'backbone/0.5.1/backbone', 'a': 'a.js?20110801', 'b': 'b.js?20110801' } });
这种方式用来维护 jquery 等类库模块的版本号是非常方便的。但用来加时间戳,文件一多时,依旧不方便。
第三种方式是利用 map:
seajs.config({ 'map': [ [ /^(.*\.(?:css|js))(.*)$/i, '$1?20110801' ] ] });
这种方式,用来批量更新时间戳是最方便的。
最佳实践
假设文件存放路径如下:http://example.com/libs/seajs/1.0.0/sea.js http://example.com/libs/jquery/1.6.2/jquery.js http://example.com/libs/backbone/0.5.1/backbone.js http://example.com/app/xxx/a.js http://example.com/app/xxx/b.js http://example.com/app/xxx/c.css[/code]为了方便版本和时间戳管理,建议配置如下:
config.js:seajs.config({ alias: { 'jquery': 'jquery/1.6.2/jquery', 'backbone': 'backbone/0.5.1/backbone' }, map: [ [ /^(.*\/app\/xxx\/.*\.(?:css|js))(?:.*)$/i, '$1?20110802' ] ] });
这样配置好后,在具体模块代码里,就不再需要考虑时间戳了:define(function(require, exports) { var $ = require('jquery'); var BB = require('backbone'); var a = require('./a'); var b = require('./b'); require('./c.css'); // ... });
相关文章推荐
- js获取日期
- HTML,CSS,JavaScript学习笔记--导航
- JStack分析cpu消耗过高问题
- Javascript正则表达式
- JSON解析
- JS学习笔记第一天
- JSP九大内置对象
- 记使用HTML5 + JS 构建水果忍者游戏
- 一篇文章教你搞懂javaScript原型链
- 慕课网 javascript 入门
- [LeetCode][JavaScript]Coin Change
- JSP 原理
- JavaScript之JavaScript 库详解<三>
- Javascript实现简单的双向绑定
- Duke.程序设计与Web入门 (1/4) --- 第一讲. What is a web page?
- JavaScript之创建对象
- javascript Dictionary data structures
- JavaScript之基础篇
- Json在线工具使用说明
- Javascript 学习 笔记六