1. DOMContentLoaded 事件:
DOMContentLoaded 事件在 HTML 文档解析完成后触发,不等待样式表、图像和子框架的加载完成。
document.addEventListener("DOMContentLoaded", function() {
// 在此处执行文档解析完成后的操作
});
2. load 事件:
load 事件在整个页面(包括所有图像、样式表、脚本等)加载完成后触发。
window.addEventListener("load", function() {
// 在此处执行页面加载完成后的操作
});
3. XMLHttpRequest 和 onload 事件:
使用 XMLHttpRequest 对象进行异步加载,并在 onload 事件中处理加载完成后的操作。
var xhr = new XMLHttpRequest();
xhr.open("GET", "example.xml", true);
xhr.onload = function() {
if (xhr.status == 200) {
var xmlDoc = xhr.responseXML;
// 在此处执行文档加载完成后的操作
}
};
xhr.send();
4. Promise 和 fetch:
使用 fetch 函数进行异步加载,结合 Promise 处理加载完成后的操作。
fetch("example.xml")
.then(response => response.text())
.then(data => {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(data, "application/xml");
// 在此处执行文档加载完成后的操作
})
.catch(error => console.error("Fetch error:", error));
示例:
document.addEventListener("DOMContentLoaded", function() {
// 在此处执行文档解析完成后的操作
console.log("DOMContentLoaded event fired");
});
window.addEventListener("load", function() {
// 在此处执行页面加载完成后的操作
console.log("Load event fired");
});
var xhr = new XMLHttpRequest();
xhr.open("GET", "example.xml", true);
xhr.onload = function() {
if (xhr.status == 200) {
var xmlDoc = xhr.responseXML;
// 在此处执行文档加载完成后的操作
console.log("XML loaded:", xmlDoc.documentElement.nodeName);
}
};
xhr.send();
// 或使用 fetch 和 Promise
fetch("example.xml")
.then(response => response.text())
.then(data => {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(data, "application/xml");
// 在此处执行文档加载完成后的操作
console.log("XML loaded with fetch:", xmlDoc.documentElement.nodeName);
})
.catch(error => console.error("Fetch error:", error));
这个示例演示了如何使用不同的 DOM 加载函数来处理文档的加载和解析。DOMContentLoaded 和 load 事件可以用于传统的页面加载,而 XMLHttpRequest 和 fetch 则适用于异步加载 XML 或其他数据。
转载请注明出处:http://www.pingtaimeng.com/article/detail/14560/XML DOM