DOM的發展,與WEB標準化的大趨勢相關甚密。只有基于正確的語義邏輯,DOM才能正確地發揮其功用。如今,正確的語義結構、表現與內容分離等要求,都已經成為網頁設計中的基本要求。因此,在網頁前端開發中,DOM的存在,無疑是為表現層、行為層甚至內容層面的連接提供了一個絕佳的API,成為熱門的Ajax應用中不可或缺的組成部分。
一、平穩退化
1、概念
早期,在未使用JavaScript之前,網頁中的內容可以正常顯示出來,用戶可以通過外設(如鼠標)操控瀏覽到相關內容,這種瀏覽體驗對用戶而言可能并不理想。
根據這個需求,內容的提供方就有了合理化目標――那就是在不影響內容展示的前提下,使用JavaScript來改善用戶體驗,提高用戶粘性。
在這個標目中,有個非常明顯的條件,就是不能影響內容的正常展示,換言之,即使用戶的瀏覽器不支持JavaScript,也能保證用戶可以正常瀏覽。
2、方法
①將JavaScript與HTML分離
這是首先應該想到的,讓兩者分離,HTML就像回到早期未使用JavaScript之前的狀態,干爽如初啊。
譬如將element.onClick之類的事件處理函數寫進JavaScript中,與某函數進行綁定。
②對JavaScript中的方法進行檢測
之前提到的一些方法,如getElementById之類,都需要去判定該方法是否支持。
<script>if(! document.getElementById) return false;</script>
通過if語句這種方式來檢測是否支持該方法,如果支持,可以繼續,不支持,直接返回false,這樣就沒必要耽誤功夫了,也起到了性能優化的作用。
二、綁定onload事件
1、綁定緣由
一些函數需要在頁面加載完全之后才能有效執行,我們需要將函數綁定到window.onload這個事件上。
<!doctype html><html><head><meta charset="utf-8"><title>筱雨生 - 博客園</title><script>function tagAttribute(){var ali = document.getElementsByTagName('li'); for(var i = 0; i < ali.length; i++){ if(ali[i].firstChild.nodeType == 3){ alert(ali[i].childNodes[0].nodeValue); }}}window.onload = tagAttribute;</script></head><body><h1>筱雨生</h1><p>
主站蜘蛛池模板:
黄梅县|
彝良县|
洪洞县|
龙井市|
衡东县|
莱芜市|
永靖县|
垦利县|
聂拉木县|
和平县|
青海省|
正宁县|
叶城县|
康马县|
邻水|
福鼎市|
徐闻县|
久治县|
伊宁市|
乌鲁木齐市|
安泽县|
启东市|
灵石县|
大方县|
巴东县|
阿城市|
宁乡县|
开原市|
胶南市|
陆川县|
巴楚县|
东乡|
衡阳市|
太康县|
汶上县|
潜山县|
尼木县|
麦盖提县|
威远县|
舞阳县|
鞍山市|