小弟最近經手一個專案,規模說大不大、說小不小,所以盡可能不想依賴過多套件,於是自己做了一個簡易版的元件系統(其實也不算系統),是使用XMLHttpRequest
讀取HTML檔,解析DOM後取出需要的元素,插入當前的頁面,如此一來便可複用NAVBAR等每個頁面都會有的元件。
雖然表面上看起來應該是沒問題,但由於經驗不足,還是想請教各位前輩,這麼做會不會導致什麼潛在的問題或風險?
附上部分程式碼供參:
let xhr = new XMLHttpRequest();
xhr.open("GET", "/components/navbar.html", true);
xhr.send();
xhr.onreadystatechange = function () {
if (this.readyState === 4 && this.statusText === "OK") {
let parser = new DOMParser();
let doc = parser.parseFromString(this.responseText, "text/html");
let navbar = doc.querySelector("nav");
let oldNavbar = document.querySelector("nav");
document.body.replaceChild(navbar, oldNavbar);
}
}
在我看來,有兩點要注意: