学习ajax过程中,了解了如何判断客户端浏览器,然后读取数据等技术。我想问一下,如何让这段js代码在html的body中,在页面加载的时候,能够触发函数news_Datas(),让其正常的运行,把从后台读取的数据写到标签tag1中。代码如下:
<head></head>
<body>
<p class="tag1">
<script type="text/javascript">var http;
function news_Datas() {
    http = new ActiveXObject("Microsoft.XMLHTTP");
    http.onreadystatechange = News ;
    http.open("Get", "Page.aspx?flag=news");
    http.send();        
}function  News () {    
    if (http.readyState == 4) {                     
        var result = http.responseXML;           
        document.getElementById("tag1").innerText = result.documentElement.firstChild.text;
    }        
}
</script></p>
</body>大前提是在页面加载的时候运行ajax,我不打算把news_Datas()写在body里,型如:<body onload="news_Datas();">,这种形式有个弊端是,只有在整个页面都加载后,ajax才工作,当页面的静态图片非常多的情况下,页面现实的非常慢,用户体验非常的不好。我希望是在页面加载的同时,ajax同步运行。谢谢。。 您的任何有意的回答我都感激不尽。

解决方案 »

  1.   

    页面一加载就要执行news_Datas,这个会出现个问题
    就是当你返回到客户端的时候可能会找不到id="tag1"的这个标签。
    既然你不想onload的时候执行。
    那你在id="tag1"的标签后面执行就可以了
    <span id="tag1"></span>
    <script>
    news_Datas()
    </script>
      

  2.   


    我就是按你的这个想法来做的,问题是根本就没有运行news_Datas()。能不能再帮忙看看我的代码是否有问题。在<body onload="news_Datas();">中是可以正常运行的。 急啊。。
      

  3.   

    $document.ready(function({news_Datas();}))
      

  4.   

      if (window.XMLHttpRequest) {
                    http= new XMLHttpRequest(); 
                }
                else                if (window.ActiveXObject) {
                        try {
                            http= new ActiveXObject("Msxml2.XMLHTTP"); //IE老版本
                        }
                        catch (e)
                        { }
                        try {
                            http= new ActiveXObject("Microsoft.XMLHTTP"); //IE新版本
                        }
                        catch (e)
                        { }
                        if (!http) {
                            window.alert("不能创建XMLHttpRequest对象实例!");
                            return false;
                        }
                    }
      

  5.   

    LZ,用jquery啊,你这代码放到其它浏览器就思密达了。