JavaScript面试题-AMD与CMD的区别?谈谈性能优化问题。对前端模块化的认识?

AMD与CMD的区别

介绍

  • AMD 是 RequireJS 在推广过程中对模块定义的规范化产出

  • CMD是SeaJS在推广过程中对模块化定义的规范化产出

    不同之处是CMD是懒执行,AMD是预执行

区别

  1. 对于依赖的模块,AMD是提前执行,CMD是延迟执行。不过RequireJS从2.0开始,也改成了可以延迟执行(根据写法不同,执行的方式不同)
  2. CMD推崇就近依赖,AMD推崇依赖前置。
  3. AMD支持全局require、局部require,但是CMD不支持全局require,所以CMD没有全局API而AMD有

谈谈性能优化问题

性能优化方法

  1. 资源压缩合并,减少HTTP请求

  2. 非核心代码异步加载

    1. 动态脚本加载
    2. defer
      • defer是在html解析完毕才执行,如果有多个则按加载顺序执行
    3. async
      • async是加载完毕后立即执行,如果是多个,执行顺序与加载顺序无关
  3. 利用浏览器缓存

    1. 强缓存

      是指在一定时间之内不会询问服务器是否需要缓存

      1. Expires(过期时间) Expries:Sun Jun 16 2019 23:55:21 GMT(服务器时间)
      2. Cache-Control(相对时间)
    2. 协商缓存

      如果本地有缓存,则需要向服务器询问是否需要使用本地缓存。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值