XML解析阻止页面加载
问题描述:
我使用下面的脚本来解析XML文档并将其显示在网站上,这一切都很好,但我的脚本内嵌在我的html文档中。XML解析阻止页面加载
它似乎阻止我的页面加载大约300ms,所以我想把它放在文档的末尾来解决这个问题。
所以我的问题是......我怎样才能在文档的末尾有这个脚本,但仍然在文档的中间显示输出。
<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>
谢谢!
答
如果你不介意做一个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>
答
如果你使用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>
+0
如何在不点击的情况下使用此方法?理想情况下,我希望它自动加载和显示,但不阻止页面加载..谢谢 – itezora
那就需要是和负载,而不是一个onclick我害怕,我在网站上使用jQuery的,如果这有助于$(document).ready()谢谢 – itezora
等等,所以你解决了吗?或者你问的如何做这与onload和$(document).ready()@ user2201059? – AlvinArulselvan
不,我没有解决它,所以请如果你能告诉我如何用这种方法(或任何其他onload方法),它会很好! :) – itezora