你不知道的异步

异步函数

  • 误区:

    • 把script代码放到body底部并不是异步执行js代码,仅仅是让页面优先解析然后再解析执行js代码(注意:到js代码执行完之前页面都没有被渲染)
  • 能做什么:

    • 异步代码(例如:setTimeout)是将代码放入异步调用栈,然后等待执行线程先渲染完页面后(即同步代码执行完,html所有标签解析完)后执行。所以耗时的操作(如xmlHttpRequest,大量计算等)都需要使用异步
  • 总结:

    • 异步代码其实质就是事件驱动+回调,只不过该"事件"是由浏览器控制触发
  • 注意:

    • 异步列队其实质还是串行列队,仅仅只是让线程渲染完页面后执行,如果大负荷计算,页面还是会假死(无法点击按钮等。。。)。

    • xmlHttpRequest(ajax)是由浏览器(并发)执行然后通过事件驱动来回调我们的js代码的,并非setTimeout这种简单的放到同步代码后执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容