在面向?qū)ο筌浖_發(fā)的時候,我們經(jīng)常提到“復(fù)用”,很好地復(fù)用代碼不僅可以大大提高開發(fā)效率,同時使得代碼更易于維護(hù)。
HTML的復(fù)用是一個很少被提及的詞匯,今天就這個問題小結(jié)如下:
在老版本的瀏覽器中HTML文檔是不支持嵌套的,而我們要能夠復(fù)用HTML代碼通常的做法主要有基于服務(wù)器端和客戶端實現(xiàn)的2大類方法:
1.服務(wù)器端實現(xiàn)
a.使用SSI,既通常的shtml文件。
b.asp、php等的include類語句,asp.net的模板頁和用戶控件。
2.在客戶端實現(xiàn)
a.使用javascript客戶端腳本
a1.可以在html文檔的onload事件中觸發(fā)一個js方法,在該方法中找到一個頁面元素作為容器,在該容器中輸出一段html代碼(可以定義一個字符串存儲要輸出的html代碼片段,比如:var str="<p>hello world!</p>";)。
a2.在頁面中使用<script type="text/javascript" src="Default3.aspx"></script>等腳本注冊塊(該處的Default3.aspx也可以是js腳本文件或其他實現(xiàn)js格式的服務(wù)器端輸出),在實現(xiàn)的腳本文件中用document.write方法把要復(fù)用的html代碼打印出來。
a3.使用AJAX實現(xiàn)。該方法有個缺陷,就是客戶端的有些瀏覽器默認(rèn)是不支持ajax的跨站調(diào)用的。
b.使用iframe
兩者的選擇:
更多的情況下首選服務(wù)器端的實現(xiàn),除非是在一些實現(xiàn)靜態(tài)化的頁面或者一些特殊的場合再使用客戶端的實現(xiàn)。