- 平穩退化:沒有JS也能正常運行
- 分離js:把網頁的結構和內容與JS的運動行為分開
- 向后兼容性:老版本不會因為你的JS而死掉
- 性能考慮
js->行為層;css->表現層
1. 平穩退化(搜索機器人searchbot)
window對象的open()->創建新的瀏覽器窗口
window.open(url,name,features)
- 三個參數都是可選的:
- 如果省略,空白的瀏覽器窗口
- 新窗口的名字,可以通過它在代碼里與它進行通信
- 以逗號分隔的字符串,新窗口的各種屬性
JS偽協議
通過一個鏈接來調用JS函數;真協議:用來在Internet上的計算機間傳輸數據包,HTTP\ FTP···
- 偽協議調用JS代碼 ×
<a href="javascript:popUp('http://www.example.com/');">example</a>
- 內嵌的事件處理函數 onclick ··· ×
<a onclick="this.href; return false;">example</a>
“#”
僅供文檔內部使用的鏈接記號(
href="#"不指向任何鏈接
)
漸進增強
標記良好的內容就是一切。
2. 向后兼容
- 對象檢測(能當做對象來對待)JS基礎
把某方法打包在一個if語句里。
if(method){ statements }
×
如果不理解
if(!method){ return false; }
√
- 瀏覽器嗅覺(browser sniffung)
通過提取瀏覽器供應商提供的信息來解決向后兼容問題。風險非常大,被對象檢測取代
3. 性能考慮
- 盡量少訪問DOM和盡量減少標記
只是查詢DOM中的某些元素,瀏覽器都會遍歷整個DOM樹
- 重構代碼:學會把遍歷結果保存在變量里;一組元素以參數形式傳遞給函數