JavaScript 简单的理解异步
2022-04-21
简介
异步加载是JavaScript开发中最关键的技术之一,主要可利用异步构建快速、高效的JavaScript应用。在众多WEB页面中为了避免服务器请求过多导致服务器崩溃,则可使用JavaScript异步技术。
简单的例子
未使用异步
在未使用JavaScript异步加载之前,用户访问服务器是一下子访问然后在加载各种图片和文字的,则会造成服务器的资源消耗。
使用异步
使用异步之后,当用户访问服务器的时候,页面是根据用户的移动而随着加载的,是断断续续的,而不是一下子造成大量的服务器请求。
队列
什么是队列
当调用某个函数的时候,会有一个异步延时事件加入队列,然后接着执行下一行代码直到最后没有任何代码进行执行(此时JavaScript会问队列里是否还有数据)
。
队列实例
当点击按钮之后,则按钮中的数据会将数据添加到队列之中,输入和点击队列。
异步加载函数
setTimeout()
setTimeout()函数是在JavaScript异步加载中常见的异步加载函数,例子如下:
1 | <script> |
只所以最后输出结果为“4.4.4”是因为这里的延时为3秒,定义的函数都会抢着要第一个触发
线程的堵塞
1 | var start = new Date; |
以上代码根据实际理念应该是等待3秒后执行,而实际运行当中则打印时间为3001。这时主要问题出现在setTimeout
函数之中,因为setTimeout
和setIn-terval
一样,计时精度要比预期望差很多。
1 | var start = new Date; |
而输出的数据至少是1000
,因为setTimeout回调while
循环结束运行之前不可能被触发。
setInterval()
1 | setInterval(function() { |