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