我有段代码,funA 和 funB无关系,funB是一个很耗时的加载方法,会堵塞页面.如何做到不堵塞页面,执行完funA,然后funB在背景执行
<p id="page">
<select></select>
</p>
<p id="modal" style="disaplay:none;">
<!--其他杂项的初始化-->
<button>Add</button>
</p>
$(function () {
funA();//初始化page
funB();//初始化modal的select
});
我想要的是初始化完显示的就OK,因为modal是隐藏的,所以可以后台慢慢初始化,并且用户需要打开modal的时候才打开.不需要做到第一次打开modal时才初始化这么高级.
第一次使用segmentfault...搞到修改很多.web worker现在来说是控制不了dom.而我这不是实际要求,只是一个假设.我实际的功能是让用户选择一条已存在的数据,如何不存在就按旁边的modal来增加,但是增加的内容有点多,页面有点复杂,考虑到要用在手机上,所以我就提出这样的一个假设,看看现在有什么好的解决方法.但貌似没有实际例子,人们都不好想象和理解这问题 = =
把b settimeout执行就可以了
看看 Worker 吧,后台执行,主流浏览器应该都支持,IE11和Edge也支持,更高版本的浏览器没试过
http://www.w3school.com.cn/html5/html_5_webworkers.asp
问题不太明白,
第一,是否操作同一个dom?
第二,modal不一定打开,为什么还要在初始化是去做?
js没有多线程,所以应该做不到
我很好奇,b操作你做了什么,js不做特别耗费cpu的操作是不会阻塞线程的,因为浏览器上禁止出现阻塞的,那样会导致整个js流程假死,后面的操作无法进行。。。B做了什么 能贴出来不。