执行时机 | 依赖方式 | 加载方式 | ||
AMD | 提前执行 | 依赖前置 | 提前异步加载 | |
CMD | 延迟执行 | 依赖就近 | 提前异步加载 | |
传统加载js方式 | 按照页面的显示顺序 先请求加载并执行 | 按照页面顺序依赖 | 按照顺序加载 |
AMD : Asynchronous Module Definition 是requireJs在推广过程中对模块的定义
CMD: Common Module Definition 是seaJs 在推广过程中对模块的定义
这两者规范的目的是为了 js 的模块化开发,特别是在浏览器端的
引深: javascript的异步请求,是浏览器开启新线程下载脚本文件【defer】
defer async 使得js的下载与页面中其他元素的渲染是并行执行的
异步任务的实现方式:
1 使用多线程的方式 非同步执行
2 使用单线程的事件循环机制【回调函数,定时器执行】
同步 异步 并行 串行 并发
并发: 当有多个线程在操作时, 如果系统只有一个cpu,不可能同时进行一个以上的线程,只能将cpu运行时间划分若干个时间段,再将时间段分配给各个线程执行, 在一个时间段的线程代码运行时,其他线程处于挂起状态
并行: 指两个或两个以上事件或活动在同一时刻发生,并行性使多个程序同一时刻可在不同cpu上同时执行
当系统有一个以上cpu时, 一个cpu执行一个线程时, 另一个cpu可以执行另一个线程,两个线程互不抢占cpu资源,可以同时进行
并发与并行的区别:
a 并行是指两个或者多个事件在同一时刻发生,并发是两个或多个事件在同一时间间隔内发生
并行和串行指的是任务的执行方式,串行指多个任务时,各个任务按顺序执行,完成一个后才能进行下一个
并行是多个任务可以同时执行
同步 异步 : 能否开启新的线程,同步不能开启新的线程,异步可以
异步是多个任务并行的前提条件