js语句执行顺序问题

shenjf2000 2005-07-28 07:43:02
各位大虾,有个问题我很不理解,请大家指点一二,如下一个函数:
function test1()
{
alert("test1")
window.location.href=URL;
alert("test2");
}
本来我以为调用这个函数后先alert test1,然后页面跳转,因此第二个alert无法执行。但是在ie上跑了一下证明我是错的,哪位知道为什么不是先跳转吗?谢谢!
...全文
621 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
adandelion 2005-09-08
  • 打赏
  • 举报
回复
<script>
function test1()
{
alert("test1"); //1第一次alert;
window.location.href="URL"; //2发出改变页面的请求,“发出请求”很快,但是“获得回应”就需要一定的时间,等待回应的时候,以下script会继续执行
alert("test2"); //3第二次alert
}
//4发出请求(request)过了一段时间后,得到回应(response),并将回应的结果显示
//4和2是两个事件,不能把他们当一个事件,混为一谈
test1();

</script>
---------------------------------------------------
强,MARK......
shenjf2000 2005-09-02
  • 打赏
  • 举报
回复
to:duchx
执行了三个函数是不一样的,第一个和第二个只能弹出一个alert,但是后面一个可以弹出两个!
to:pyusksk503(你好)
你的意思我没有怎么明白^_^
pyusksk503 2005-08-11
  • 打赏
  • 举报
回复
<script language="javascript">
<!--
function test1()
{
alert("test1");
window.location.href="2.asp";
setTimeout("test2()",1000);
}
function test2()
{
alert("test2");
}

//-->
</script>
我也这么想的.
chxuxu 2005-08-11
  • 打赏
  • 举报
回复
duchx 2005-08-11
  • 打赏
  • 举报
回复
我怎么执行了三个函数,都能按照顺序执行下去的啊

跟原先的没两样嘛
adandelion 2005-08-02
  • 打赏
  • 举报
回复
for(var i=0;i<100000;i++)
var t=i;

-------------
楼主变态,消耗内存啊~~~
shenjf2000 2005-08-02
  • 打赏
  • 举报
回复
请哪位高手指点一下!
hcom 2005-07-31
  • 打赏
  • 举报
回复
up
shenjf2000 2005-07-30
  • 打赏
  • 举报
回复
补充说明一下,test3函数中的for循环的作用就是为了延迟时间(我经常干这种事^_^),我看了一下ie中执行这个时间也差不多一秒,而setTimeout中是毫秒级。
shenjf2000 2005-07-30
  • 打赏
  • 举报
回复
楼上的回答我觉得很好,因为后来我也这么想^_^。但是有个问题,我觉得发出页面请求的时候(即进行这个url连接)页面就应该准备去打开一个新的窗口(不管这个页面是否存在不存在可能就是出现错误页面),这样当前窗口的一些对象就被销毁(包括javascript的对象),所以下面的语句就应该不被执行。不过按照目前各浏览器的表现来说好象就是这样的一个机制,但是我发现这样的机制也不完全对!比如我做了如下测试:
function test1()
{
alert("sjftest1")
window.location.href=goURL();
setTimeout("alert('sjftest2');",50);
}

function test2()
{
alert("sjftest1")
window.location.href=goURL();
setTimeout("alert('sjftest2');",1);
}
function test3()
{
alert("sjftest1")
window.location.href=goURL();
for(var i=0;i<100000;i++)
var t=i;
alert("sjftest2");
}

大家猜猜这三个函数执行的情况是怎么样的?在运行了上面三个函数后,我开始和楼主一样的想法又被打破了,有哪位能指点一下真正的原因是什么吗?


to:chjpeng(鹏&NULL)
你的意思是否告诉我如何让下面的alert2不弹出来?如果是让下面的alert2不弹出来你的方法肯定有用(当然还有其他很多方法),其实我提这个问题的主要目的是想知道javascript执行的一个机制问题,因为从上面几个函数的执行结果来看好象不这么简单!
JK_10000 2005-07-29
  • 打赏
  • 举报
回复
<script>
function test1()
{
alert("test1"); //1第一次alert;
window.location.href="URL"; //2发出改变页面的请求,“发出请求”很快,但是“获得回应”就需要一定的时间,等待回应的时候,以下script会继续执行
alert("test2"); //3第二次alert
}
//4发出请求(request)过了一段时间后,得到回应(response),并将回应的结果显示
//4和2是两个事件,不能把他们当一个事件,混为一谈
test1();

</script>
adandelion 2005-07-29
  • 打赏
  • 举报
回复
function test1()
{
alert("test1")
window.location.href=URL;
return true;
//执行完成了就返回,就像asp里面用js history.back()后要response.end一样
alert("test2");
}
-----------------------------------
return true;后,alert("test2");怎么回执行呢????????
wzhiyuan 2005-07-28
  • 打赏
  • 举报
回复
没怎么注意过,关注。
chjpeng 2005-07-28
  • 打赏
  • 举报
回复
function test1()
{
alert("test1")
window.location.href=URL;
return true;
//执行完成了就返回,就像asp里面用js history.back()后要response.end一样
alert("test2");
}
aniude 2005-07-28
  • 打赏
  • 举报
回复
嘿嘿,关注,,,平时也会遇到这个小问题,但不怎么去管他,,,,,,
adandelion 2005-07-28
  • 打赏
  • 举报
回复
alert("test2"); 影响了window.location.href=URL;进程的执行.
peanutsun 2005-07-28
  • 打赏
  • 举报
回复
因为window.location.href=URL慢
adandelion 2005-07-28
  • 打赏
  • 举报
回复
是按照顺序执行的.
adandelion 2005-07-28
  • 打赏
  • 举报
回复
window.location.href=URL;//速度慢点
alert("test2"); //速度快点.
正常.

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧