window.location.href=URL;//速度慢点
 alert("test2"); //速度快点.
正常.

解决方案 »

  1.   

    alert("test2"); 影响了window.location.href=URL;进程的执行.
      

  2.   

    function test1()
    {
     alert("test1")
     window.location.href=URL;
     return true;
     //执行完成了就返回,就像asp里面用js history.back()后要response.end一样
     alert("test2");   
    }
      

  3.   

    function test1()
    {
     alert("test1")
     window.location.href=URL;
     return true;
     //执行完成了就返回,就像asp里面用js history.back()后要response.end一样
     alert("test2");   
    }
    -----------------------------------
    return true;后,alert("test2");怎么回执行呢????????
      

  4.   

    <script>
    function test1()
    {
     alert("test1");   //1第一次alert;
     window.location.href="URL";  //2发出改变页面的请求,“发出请求”很快,但是“获得回应”就需要一定的时间,等待回应的时候,以下script会继续执行
     alert("test2");   //3第二次alert
    }
    //4发出请求(request)过了一段时间后,得到回应(response),并将回应的结果显示
    //4和2是两个事件,不能把他们当一个事件,混为一谈
    test1();</script>
      

  5.   

    楼上的回答我觉得很好,因为后来我也这么想^_^。但是有个问题,我觉得发出页面请求的时候(即进行这个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执行的一个机制问题,因为从上面几个函数的执行结果来看好象不这么简单!
      

  6.   

    补充说明一下,test3函数中的for循环的作用就是为了延迟时间(我经常干这种事^_^),我看了一下ie中执行这个时间也差不多一秒,而setTimeout中是毫秒级。
      

  7.   

    for(var i=0;i<100000;i++)
        var t=i;-------------
    楼主变态,消耗内存啊~~~
      

  8.   

    <script language="javascript">
    <!--
    function test1()
    {
     alert("test1");
     window.location.href="2.asp";
     setTimeout("test2()",1000);
    }
    function test2()
    {
     alert("test2");   
    }//-->
    </script>
    我也这么想的.
      

  9.   

    to:duchx
    执行了三个函数是不一样的,第一个和第二个只能弹出一个alert,但是后面一个可以弹出两个!
    to:pyusksk503(你好) 
    你的意思我没有怎么明白^_^
      

  10.   

    <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......