首页 > JS 异步执行/背景执行?

JS 异步执行/背景执行?

我有段代码,funA 和 funB无关系,funB是一个很耗时的加载方法,会堵塞页面.如何做到不堵塞页面,执行完funA,然后funB在背景执行

<div id="page">
    <select></select>
</div>
<div id="modal" style="disaplay:none;">
    <!--其他杂项的初始化-->
    <button>Add</button>
</div>
$(function () {
    funA();//初始化page
    funB();//初始化modal的select
});

我想要的是初始化完显示的就OK,因为modal是隐藏的,所以可以后台慢慢初始化,并且用户需要打开modal的时候才打开.不需要做到第一次打开modal时才初始化这么高级.

第一次使用...搞到修改很多.web worker现在来说是控制不了dom.而我这不是实际要求,只是一个假设.我实际的功能是让用户选择一条已存在的数据,如何不存在就按旁边的modal来增加,但是增加的内容有点多,页面有点复杂,考虑到要用在手机上,所以我就提出这样的一个假设,看看现在有什么好的解决方法.但貌似没有实际例子,人们都不好想象和理解这问题 = =


js没有多线程,所以应该做不到


把b settimeout执行就可以了


看看 Worker 吧,后台执行,主流浏览器应该都支持,IE11和Edge也支持,更高版本的浏览器没试过

http://www.w3school.com.cn/html5/html_5_webworkers.asp


<div id="page">
    <select></select>
</div>
<div id="modal" style="disaplay:none;">
    <!--其他杂项的初始化-->
    <button>Add</button>
</div>
$(function () {
    funA();//初始化page
    setTimeOut(funB,0);//初始化modal的select
});

问题不太明白,
第一,是否操作同一个dom?
第二,modal不一定打开,为什么还要在初始化是去做?


我很好奇,b操作你做了什么,js不做特别耗费cpu的操作是不会阻塞线程的,因为浏览器上禁止出现阻塞的,那样会导致整个js流程假死,后面的操作无法进行。。。B做了什么 能贴出来不。

【热门文章】
【热门文章】