AMD与CMD的区别
介绍
-
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出
-
CMD是SeaJS在推广过程中对模块化定义的规范化产出
不同之处是CMD是懒执行,AMD是预执行
区别
- 对于依赖的模块,AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成了可以延迟执行(根据写法不同,执行的方式不同)
- CMD推崇就近依赖,AMD推崇依赖前置。
- AMD支持全局require、局部require,但是CMD不支持全局require,所以CMD没有全局API而AMD有
谈谈性能优化问题
性能优化方法
-
资源压缩合并,减少HTTP请求
-
非核心代码异步加载
- 动态脚本加载
- defer
- defer是在html解析完毕才执行,如果有多个则按加载顺序执行
- async
- async是加载完毕后立即执行,如果是多个,执行顺序与加载顺序无关
-
利用浏览器缓存
-
强缓存
是指在一定时间之内不会询问服务器是否需要缓存
- Expires(过期时间) Expries:Sun Jun 16 2019 23:55:21 GMT(服务器时间)
- Cache-Control(相对时间)
-
协商缓存
如果本地有缓存,则需要向服务器询问是否需要使用本地缓存。
-