什么是 动态加载、静态加载、同步加载、异步加载

JavaScript08

什么是 动态加载、静态加载、同步加载、异步加载,第1张

动态加载和静态加载指的是什么时候加载 ,动态加载是运行时加载(CommonJS),静态加载是编译时加载(ES6)。当然es6也提供的动态加载,即import() 。

同步加载还是异步加载指的是加载的方式。 静态加载中都是同步加载的。动态加载中CommonJS的require是同步的。而es6import()是异步的。

js的同步和异步问题通常是指ajax的回调,如果是同步调用,程序在发出ajax调用后就会暂停,直到远程服务器产生回应后才会继续运行。而如果是异步调用,程序发出ajax调用后不会暂停,而是立即执行后面的代码,服务器返回信息后会自动触发回调函数进行处理。相比较而言,异步调用的性能最佳,程序不会出现卡顿的现象,而同步调用则通常用于需要立即获得结果并实时处理的情况。

打个比方:假如你想让四个手下分别去执行四个不同的任务,如果用“同步”的方法,就要先让第一个人去执行任务,这期间你和另外三个手下就呆呆地等,什么也不干,直到第一个人完成任务回来报告后再让第二个人去执行任务,依此类推;而如果用“异步”的方法,就可以把四个手下同时派出去执行任务,然后自己就可以去喝酒唱歌泡妞了,手下完成任务后只需要用手机向你汇报结果即可。

javascript 异步表示async,指:代码执行不按顺序,‘跳过’执行,待其他某些代码执行完后,再来执行,称为“异步”。

javascript同步表示sync,指:代码依次执行。

就是这么回事

javascript所谓的“线程”,就是这样一种概念

这种情况容易出现在 ajax 当中,因为ajax最可能,也最多用到async 或者 sync的概念属性。