前端dom操作竟然使得http请求的时间延长了

最近在项目中遇到了一个奇怪的问题:在google浏览器的调试窗口network下看到一个请求的时间一直是2s多,但是当我把这个请求单独拿出来执行的时候发现根本用不了2s,100多毫秒就完成了。最后再不断的调试下发现我在发送该请求(称为A)的同时发送了另一个请求(称为B),B请求因为其查询的数据少所以请求很快就回来了,B请求的回调先于A请求的回调执行。虽然B请求查询的数据少,但是其回调函数中进行了大量的dom操作(多达2s的时间),一直占用着js线程。导致A请求其实已经回来数据了,但是回调函数一直执行不了,最终导致A请求的时长达到了2s的假象。

该问题透露着几个至关重要的知识点:1.js是单线程执行的。2.异步。3.事件循环

这里都是js引擎执行机制的东西,之前一直懵懵懂懂的。下篇博客再总结下!

posted @ 2018-06-11 15:11  靳刘杰  阅读(692)  评论(0编辑  收藏  举报