XML解析阻止页面加载

时间:2013-06-12 07:50:33

标签: xml parsing xmlhttprequest document.write

我正在使用以下脚本来解析XML文档并将其显示在网站上,这一切都很有效,但我在html文档的中间内嵌了这个脚本。

它似乎阻止我的页面加载大约300毫秒所以我想把它放在文档的末尾来解决这个问题。

所以我的问题是......我怎么能在文档的末尾有这个脚本,但仍然在文档的中间显示输出。

<script>
if (window.XMLHttpRequest) {
    xhttp = new XMLHttpRequest();
} else {
    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", "abc.xml", false);
xhttp.send();
xmlDoc = xhttp.responseXML;
x = xmlDoc.getElementsByTagName("xr")[0].attributes;
att = x.getNamedItem("value");
document.write(att.value);
</script>

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您不介意制作onclick功能......

<body>
    <div onclick="showXML()">Click here to show XML</div>
    </body>
    <script>
    function showXML(){
    if (window.XMLHttpRequest) {
        xhttp = new XMLHttpRequest();
    } else {
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttp.open("GET", "abc.xml", false);
    xhttp.send();
    xmlDoc = xhttp.responseXML;
    x = xmlDoc.getElementsByTagName("xr")[0].attributes;
    att = x.getNamedItem("value");
    document.write(att.value);
    }
    </script>

答案 1 :(得分:0)

如果您正在使用jQuery库,可以尝试以下(putting the script at the bottom):

<body>
    <div id="test">Click here to show XML</div>
    <script>
        $(document).ready(function(){
           function showXML(){
              if (window.XMLHttpRequest) {
                 xhttp = new XMLHttpRequest();
              } else {
                 xhttp = new ActiveXObject("Microsoft.XMLHTTP");
              }
              xhttp.open("GET", "abc.xml", false);
              xhttp.send();
              xmlDoc = xhttp.responseXML;
              x = xmlDoc.getElementsByTagName("xr")[0].attributes;
              att = x.getNamedItem("value");
              document.write(att.value);
           }
           $("#test").on('click', function(){
              showXML();
           });
       });
    </script>
</body>