javascript延迟问题!

js延迟问题!一、两个函数test1(),test2(),让它们并列放一起,(如下)test1();test2();一般来说,应该是test1()执行完再执行test2(... js延迟问题!一、两个函数test1(),test2(),让它们并列放一起,(如下)test1();test2();一般来说,应该是test1()执行完再执行test2()。可问题是:当test1()要加载的数据过大时,出现的结果是test2()先加载完。(ps:有些情况下,是正常的test1()加载完加载test2() )。这是为何呢?二、但又当我将test2(),加上延迟时(如下),延迟3秒test1();setTimeout("test2()",3000);出现的的情况是。test1()完完全全加载完之后,等待3秒,再加载test2();而并非是所想象当中的两函数差不多时间出结果。但你去掉延迟后又会出现test2()比test1()快的结果。这又是为何呢?求高手解答。补充:这两个函数都是加载数据库中地图的数据,量比较大,前者(test1)加载的是全部图层的数据,后者(test2)是加载某一图层的数据,数据量相差很大。 展开
 我来答
匿名用户
2013-07-28
展开全部
你用函数来加载数据,那应该是使用了ajax吧,ajax不属于JavaScript线程,所以和态test1和test2可以同时运行加载数唤晌源据
对于第二种情况,就有点迷糊了,应该不会在谨毁test1完全加载之后,才开始等待3秒运行
虽然setTimeout的运行机制是浏览器控制,插入到JavaScript线程的空闲时间段,会有延迟执行的可能,但按照第一个种情况的解释,他延迟的时间应该不会正好等于test1加载完毕,否则就不会出现第一种情况
我不晓得,你是如何判断setTimeout是在test1完全加载后才开始执行的
解决方案:
把test2放在test1的onready函数里呢(很久没用原生JavaScript,貌似是是这个事件吧,你可以自己查一下ajax)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式