SeaJS 里版本号和时间戳管理的最佳实践
来源:互联网 发布:大数据行业待遇怎么样 编辑:程序博客网 时间:2024/05/17 08:59
用 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.jshttp://example.com/libs/jquery/1.6.2/jquery.jshttp://example.com/libs/backbone/0.5.1/backbone.jshttp://example.com/app/xxx/a.jshttp://example.com/app/xxx/b.jshttp://example.com/app/xxx/c.css
为了方便版本和时间戳管理,建议配置如下:
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'); // ...});
转自:http://itindex.net/detail/10903-seajs-%E7%89%88%E6%9C%AC-%E6%97%B6%E9%97%B4
- SeaJS 里版本号和时间戳管理的最佳实践
- SeaJS 里版本号和时间戳管理的最佳实践
- SeaJS 里版本号和时间戳管理的最佳实践
- NPM依赖包版本号~和^的区别及最佳实践
- lucene管理IndexReader和IndexWriter的最佳实践
- seajs项目,js版本号带来的问题
- 中国中小企业的最佳研发管理实践
- 转:执行项目管理的最佳实践
- 软件过程管理的最佳实践
- MAVEN 项目管理的最佳实践
- 日志管理的6个最佳实践
- 管理APP内存的最佳实践
- git分支的管理策略最佳实践
- Xcode 自动生成版本号技术最佳实践
- WebLogic管理最佳实践
- WebLogic管理最佳实践
- 复制管理最佳实践
- 项目管理最佳实践
- 图片立体边框效果
- Android控件之ZoomControls缩放控件
- linux之cut用法
- 创建触发器,报索引中丢失IN或OUT参数::1
- database dump 概念
- SeaJS 里版本号和时间戳管理的最佳实践
- 阅读好体验的准则:100% Easy-2-Read
- ubuntu tooltips颜色设置
- 10种技巧可提升Android应用运行效果
- PayPal的使用秘籍(PayPal怎么用)
- C# Excel
- 两张结构相同的表对比数据。
- 第十三章 并发
- 深入了解ETL