javascript 如何实现阻断执行(sleep)


   
  function a(){
  
loadJs('jquery.js'); // 1 动态向页面中添加js文件
}

function b(){
alert($.fn.jquery);
}

a();

b(); //我如何做到 必须等[函数a]彻底加载完毕 这个[函数b]才能执行?

/*
要求:
1:不能使用load的回调函数 因为现实中b函数是另外一个函数 所以我不能使用callback
我的做法:
1: 我使用的第一种方法
a();
while(true){if(..){break}} //利用一个死循环 来模拟sellp阻断 但是这个方法无法阻断 js的预编译 也就是说 函数b 的确是 等到 a执行完后 才执行 但是报出$ is undefined 也就是说 js在预编译的时候,已经将[函数b] 编译完毕
b();

2:
a();
setTimeout(function(){
b(); //这种方法目前来说是最完美 但是现实中我无权碰 函数b的写法
},time)
*/

Ajax JavaScript

忧郁的消失 11 years, 7 months ago

第二种方法,可能你已经知道了,但是我还是想说下,因为你无法判断最终加载外部脚本所需的时间,所以你的这个time要尽可能的大,这个方式是不好的。

这样不可以吗

   
  var timer = setInterval(function () {
  
if($){
b();
clearTimeout(window.timer);
}
},10);

那一缕阳光很美 answered 11 years, 7 months ago

Your Answer