文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>火狐对ajax的onreadystatechange与IE的不同。

火狐对ajax的onreadystatechange与IE的不同。

时间:2010-10-22  来源:lorgine

function test1()
{
    if (xmlHttpRequest == null)
    {
        xmlHttpRequest = CreateXmlHttpRequest();
    }

 

    var url = “test.ashx”;  

  同步请求
    xmlHttpRequest.open("GET", url, false);
    xmlHttpRequest.onreadystatechange = suc; 
    xmlHttpRequest.send(null);

   alert(1);
}

function suc()
{f (xmlHttpRequest.readyState == 4)
    {
        if (xmlHttpRequest.status == 200)
        {

    alert(2);

   }

}
}

上面的代码在ie中会先后弹出1,2,但是在火狐中只会弹出2.

原因是在火狐中,如果ajax基于同步请求,那么代码是顺序执行的,同时不会触发onreadystatechange事件。

当执行xmlHttpRequest.send(null);这一句时,不会立即执行alert(1);直至xmlHttpRequest有返回结果。

 

如果把上面的代码改成:

function test1()
{
    if (xmlHttpRequest == null)
    {
        xmlHttpRequest = CreateXmlHttpRequest();
    }

 

    var url = “test.ashx”;  

  异步步请求
    xmlHttpRequest.open("GET", url, true);
    xmlHttpRequest.onreadystatechange = suc; 
    xmlHttpRequest.send(null);

   alert(1);
}

function suc()
{f (xmlHttpRequest.readyState == 4)
    {
        if (xmlHttpRequest.status == 200)
        {

    alert(2);

   }

}
}

此时在ie或者火狐中,会返回相同的结果。所以在jquery中存在  

    if ( !s.async ) {
            onreadystatechange();
        }

这样一行。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载