社区
JavaScript
帖子详情
JS函数执行顺序控制
youufis
2010-01-25 04:07:20
假如一个网页里有两个JS函数A和B,同时调用A和B时候,有没有什么办法确保A先执行完成才执行B?
说明A函数里有setTimeOut语句。
查了很多资料都没有解决问题,郁闷!!!
...全文
3992
19
打赏
收藏
JS函数执行顺序控制
假如一个网页里有两个JS函数A和B,同时调用A和B时候,有没有什么办法确保A先执行完成才执行B? 说明A函数里有setTimeOut语句。 查了很多资料都没有解决问题,郁闷!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dctarh
2010-07-25
打赏
举报
回复
function A(){
this.i=0;
this.b=100;
_this=this;
this._do=function(){_this.check()};
for(var j=0;i<this.b;j++){
framemain.location.href='loading.htm';
setTimeout(_do,1000+j*50);
}
this.check=function(){
this.i++;
if(this.i>=this.b){
B();
}
}
}
youufis
2010-01-25
打赏
举报
回复
[Quote=引用 14 楼 ltnrain 的回复:]
貌似跨域的1234.htm没有权限访问。。
[/Quote]
只是在框加中打开访问,没问题!
youufis
2010-01-25
打赏
举报
回复
[Quote=引用 15 楼 licip 的回复:]
谁先调用,谁就先执行,如果是AJAX那就可以设置为同步呀。
[/Quote]
不是谁先调用,谁就先执行
function A()
{
for(i=0;i <100;i++)
{
framemain.location.href='loading.htm'
setTimeout("frametmp.location.href='1234.htm'",1000+i*50);
}
}
function B()
{
framemain.location.href='1234.htm'
frametmp.location.href='loading.htm'
}
比如调用
A();
B();
并不是A()先执行完成,才执行B!
麻烦大家再看清问题,谢谢!!
youufis
2010-01-25
打赏
举报
回复
如果用两个button分开分别先执行A函数,再执行B函数,没什么问题,但是我想A函数执行完成后马上自动执行B函数,(A函数不执行完成就执行B函数是不行的,)整了几天看了很多网上资料,确实没招了!不知道是不是JS完成不了这样的功能?还是我的想法有问题?楼上有几位说给B一个足够长的时间等待再执行,这个是治标不治本,而且A执行多长时间是一个不确定的因素。帮忙顶一下,如果CSDN的老大都不能解决,我就彻底放弃了!!!!
licip
2010-01-25
打赏
举报
回复
谁先调用,谁就先执行,如果是AJAX那就可以设置为同步呀。
草根醉秋意
2010-01-25
打赏
举报
回复
貌似跨域的1234.htm没有权限访问。。
cloudgamer
2010-01-25
打赏
举报
回复
那应该放在iframe的onload执行
youufis
2010-01-25
打赏
举报
回复
谢谢大家,我做一个详细说明:
test.htm页面有两个框架framemain(用来显示打开的网页)和frametmp(隐藏的框架,用来临时调入1234.htm网页)
函数a的作用就是在隐藏框架frametmp打开1234.htm网页前在主框架framemain中打开loading.htm
函数b的作用就是当1234.htm在frametmp加载完成了在主框架显示1234.htm,在frametmp打开loading.htm
说明:test.htm和loading.htm是一个域,并和1234.htm是不同域
function A()
{
for(i=0;i<100;i++)
{
framemain.location.href='loading.htm'
setTimeout("frametmp.location.href='1234.htm'",1000+i*50);
}
}
function B()
{
framemain.location.href='1234.htm'
frametmp.location.href='loading.htm'
}
我的问题就是确保A执行完成了(即1234.htm 加载完成)才执行B。
KK3K2005
2010-01-25
打赏
举报
回复
用callback机制就可以了
吧B函数作为参数传给A函数
由A来控制怎么时候执行 B
如果A里面还有setTimeout 的函数C 则A把执行B的时机交给C 依次类推
pillar0514
2010-01-25
打赏
举报
回复
var AisFinished = false;
function A(){
setTimeout(function(){
AisFinished = true;
},1000);
}
function B(){
if(AisFinished){
alert(1);
}
}
B();
A();
B();
setTimeout(function(){
B();
},2000);
yixianggao
2010-01-25
打赏
举报
回复
lz 说滴是 ajax 异步调用么?!
或者说 a 函数需要读取 sever 端数据么?!
xmliy
2010-01-25
打赏
举报
回复
在b中设置一个足够长的延时,确保b执行的时候a已执行完。或者,在a中设置一个执行结束的标识,在b中定时检查该标志,检测到标志的时候再往下执行
dh20156
2010-01-25
打赏
举报
回复
只能用回调
草根醉秋意
2010-01-25
打赏
举报
回复
在函数a里面调用b
呼吸先生
2010-01-25
打赏
举报
回复
LZ说的确实是一个问题,A没执行完就执行B了,而LZ想要A执行完再执行B而已。
#2楼说的是一个办法。。
cloudgamer
2010-01-25
打赏
举报
回复
setTimeOut再执行b?
烟雨鹏城
2010-01-25
打赏
举报
回复
A函数里有setTimeOut语句设定一个标志,显示是否a执行完,如果执行玩则setTimeOut执行B,否则执行a
王集鹄
2010-01-25
打赏
举报
回复
先调谁就是谁
setTimeout一个设置长一个设置断不就好了,,,这也是问题?
JavaScript--
函数
的
执行顺序
4.
函数
调用一次就会运行一次,而且
函数
调用如果在A作用域 它是在B作用域生成的 那么
函数
运行代码在B作用域。4.
函数
调用一次就会运行一次,而且
函数
调用如果在A作用域 它是在B作用域生成的 那么
函数
运行代码在B作用域。2.局部变量:
函数
内部声明的变量只能在
函数
内部使用,不能再
函数
外部使用,否则会报错:该变量未定义。2.
函数
内部的标识符只能在
函数
内部使用
函数
外部不能使用。这里的例题:内部变量在
函数
内部没找到相应的变量,就往外面找。
函数
的作用域:分为局部作用域和全局作用域(局部变量)(全局变量)
js
函数
执行顺序
js
函数
在执行过程:1、首先对载入的
js
文件每个
js
代码块进行扫描,读入第一个代码块,进行语法扫描处理;2、如果语法错误,则浏览器报错,该代码块不再进行扫描执行;如果有第二个代码块则进入第二个代码块进行相同的处理动作,依次递推,直至结束;3、语法没有错,扫描代码中有没有需要做预编译处理的代码,如已定义的变量和定义是
函数
,有的话则进行预编译处理,处理完之后再进行至上而下的处理;遇到赋值
函数
时,不做预...
JavaScript回调
函数
执行顺序
解析
根据事件循环的
执行顺序
,JavaScript首先执行同步任务,输出“start”和“second”,然后将回调
函数
添加到任务队列中等待执行。最后,JavaScript在执行栈为空时,从任务队列中获取回调
函数
并将其添加到执行栈中,执行回调
函数
,输出“first”。回调
函数
的
执行顺序
取决于JavaScript事件循环的
执行顺序
,我们需要了解事件循环的机制和回调
函数
的注意事项,以保证代码的正确性和可读性。因此,回调
函数
的
执行顺序
取决于它何时被添加到任务队列中,并且取决于任务队列中的其他任务何时执行完成。
浅析 ~ Javascript
函数
执行顺序
参考文档: https://www.cnblogs.com/CBDoctor/p/3745246.html https://www.cnblogs.com/fliu/articles/5246113.html?tdsourcetag=s_pctim_aiomsg 一、Javascript代码整体书写位置: 浏览器加载javascript有个特点,即:页面一旦打开载入之后立即就会执行(先编译...
如何
控制
Javascript
执行顺序
?
如何
控制
Javascript
执行顺序
?在JavaScript中,
控制
代码
执行顺序
的方法有很多种。
JavaScript
87,997
社区成员
224,709
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章