seajs模块压缩问题】的更多相关文章

在优化整理项目代码时,想使用seajs来把代码模块化.看了下官方5分钟上手教程,觉得很不错,也没多想就一直开发下去了,也没出什么问题.等一同事说把代码打包个放到设备上去测试一下,发现怎么也跑不起来,郁闷了. 于是单步调试一把,发现模块一直加不进来.看了一下seajs的原码,明白了是怎么回事. define模块解析依赖有两种途径,一种是从define(id, deps, factory)中的deps来:还有一种是解析define代码,从require中来.来看一下代码: Module.define…
现在很多人都在用seaJs来开发项目,seaJs上手容易,操作简单.但在后期做合并压缩的时候却中了个巨大无比的坑,但坑也总得有人来填.于是花了将近一个星期的时间来填了这坑,现将填坑的一些心得与大家分享.在网上搜了下相关的资料,不得不说网上资料很多的坑(都是复制别人的...),说多都是泪.下面总结下已找到的seaJs合并压缩的几种办法,让中坑的人尽快脱坑. 第一种: 在seaJs的官网上有他自带的一个seajs-combo插件.看似不错,和minify差不多.这种方法比较简单粗暴:下载个JS文件引…
grunt与seajs grunt是前端流行的自定义任务的脚手架工具,我们可以使用grunt来为我们做一些重复度很高的事情,如压缩,合并,js语法检查等.通过定义grunt的配置文件Gruntfile.js,配置并注册grunt的任务,最终我们可以通过命令行来执行任务. seajs主要用于模块化,通过define定义一个模块,可以通过require加载模块,exports导出模块.具体的seajs实现可通过本博客的系列博文--Seajs源码解析系列来进一步了解. 在实际生产中,如果紧紧定义一系列…
jquery直接在html中引入. jquery插件修改为: define(function (require, exports, moudles) { return function (jquery) { // 插件源码..... // 插件源码..... // 插件源码..... // 插件源码..... // 插件源码..... } }) 这样它就是一个seajs模块了, 像下面这样引用到项目: define(function (require, exports, module) { re…
Httpd服务入门知识-使用mod_deflate模块压缩页面优化传输速度 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mod_deflate模块概述 mod_deflate模块功能: 压缩页面从而优化传输速度 mod_deflate模块适用场景: ()节约带宽,额外消耗CPU:同时,可能有些较老浏览器不支持 ()压缩适于压缩的资源,例如文本文件 LoadModule deflate_module modules/mod_deflate.so SetOutputFilt…
本文仅讨论具名模块的情况,即通过spm打包出来的模块. 想起ID与路径统一原则,详见https://github.com/seajs/seajs/issues/930 今天又研究了下seajs源码,源码中并没有显式的判断id与路径相不相等,即没有类似如下的代码 if(id == uri){ mod.exec(); } 假定被加载的模块为a.js step1:在加载a.js前,就创建并缓存了a.js的module实例A,key值为a.js的全路径,暂定为uriA step2:定义好onload事件…
压缩数据创建gzip文件 先看一个略麻烦的做法 import StringIO,gzip content = 'Life is short.I use python' zbuf = StringIO.StringIO() zfile = gzip.GzipFile(mode='wb', compresslevel=9, fileobj=zbuf) zfile.write(content) zfile.close() 但其实有个快捷的封装,不用用到StringIO模块 f = gzip.open(…
模块标识采用路径形式,但要注意与路径的区别.require.require.async的第一个参数是模块标识.而seajs.use第一个参数为文件路径. use是全局的,require是局部的.模块标识在两部分工作中起了不同作用,1.在打包合并过程中起着寻找依赖及查找模块文件的作用:2.在发布后项目使用中起着标识模块的作用.   模块标识命名规则: 一个模块标识由斜线(/)分隔的多项组成. 每一项必须是小驼峰字符串. . 或 .. . 模块标识可以不包含文件后缀名,比如 .js . 模块标识可以…
先看一个seajs的官方example,  以下以seajs.use('main')为例, 解析加载mod main的过程 //app.html seajs.use("main"); //main.js define(function(require) { var Spinning = require('./spinning'); var s = new Spinning('#container'); s.render(); }); //spinning.js define(funct…
在HTTPD主配置文件中添加如下,并确保deflate模块是启用的 #vim /etc/httpd/conf/httpd.conf SetOutputFilter DEFLATE//调用一个叫DEFLATE输出过滤器 # mod_deflate configuration # Restrict compression to these MIME types AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE…