|
網(wǎng)站建設(shè)是指使用標(biāo)識(shí)語(yǔ)言(markup language),通過(guò)一系列設(shè)計(jì)、建模、和執(zhí)行的過(guò)程將電子格式的信息通過(guò)互聯(lián)網(wǎng)傳輸,最終以圖形用戶界面(GUI)的形式被用戶所瀏覽。簡(jiǎn)單來(lái)說(shuō),網(wǎng)頁(yè)設(shè)計(jì)的目的就是產(chǎn)生網(wǎng)站。簡(jiǎn)單的信息如文字,圖片(GIF,JPEG,PNG)和表格,都可以通過(guò)使超文件標(biāo)示語(yǔ)言、可擴(kuò)展超文本標(biāo)記語(yǔ)言等標(biāo)示語(yǔ)言放置到網(wǎng)站頁(yè)面上。 ===最頂級(jí)頁(yè)面===
現(xiàn)在我們將我們注視的焦點(diǎn)轉(zhuǎn)向我們的日歷應(yīng)用例子,該應(yīng)用包括4個(gè)不同頁(yè)面,canlendar.html為最頂級(jí)HTML文檔,該頁(yè)包含了calendar.htc HTC,而canlendar.htc有反過(guò)來(lái)包含兩個(gè)別的HTC:day.htc和today.htc,calendar.html 內(nèi)容如下:
<HTML XMLNS:MYCAL> <HEAD> <TITLE>Calendar Example</TITLE> <?IMPORT NAMESPACE="MYCAL" IMPLEMENTATION="calendar.htc"/> </HEAD>
<BODY> <P>Click a day in the calendar to add or modify your schedule.</P>
<MYCAL:CALENDAR></MYCAL:CALENDAR>
</BODY> </HTML>
有幾個(gè)要點(diǎn)您必須重點(diǎn)注意:第一、命名空間定義在〈HTML〉標(biāo)記中,我們需要使用在我們要調(diào)用的HTC中定義的命名空間,在canlendar.htc中的命名空間是:MYCAL,所以在<HTML>標(biāo)記中必須出現(xiàn)XMLNS標(biāo)識(shí)。 <?IMPORT>標(biāo)記以問(wèn)號(hào)開(kāi)始以和別的正常標(biāo)記區(qū)別開(kāi),該標(biāo)記要求瀏覽器導(dǎo)入指定的HTC:calendar.htc,HTC可以有多個(gè)命名空間,故在導(dǎo)入時(shí)需要指明要使用的命名空間(MYCAL):
<?IMPORT NAMESPACE="MYCAL" IMPLEMENTATION="calendar.htc"/>
HTC的主要優(yōu)點(diǎn)之一就是:瀏覽器將一直掛起頁(yè)面解析直到輸入文件全部被導(dǎo)入為止。頁(yè)面處理的異步機(jī)制將導(dǎo)致許多問(wèn)題,瀏覽器并不等元素已經(jīng)完全顯示才開(kāi)始解析頁(yè)面,作為例子,你可以建立一個(gè)對(duì)象,并且在文擋的頂部訪問(wèn)一個(gè)在頁(yè)面底部的方法,如果對(duì)象因?yàn)槟承┰驗(yàn)闇?zhǔn)備好,你將會(huì)得到一個(gè)錯(cuò)誤指示沒(méi)有該對(duì)象不存在或該對(duì)象不支持你要訪問(wèn)的方法,相信您已經(jīng)碰到過(guò)此類事情了吧!不管這樣,?IMPORT 是同步的,并且瀏覽器會(huì)一直等待頁(yè)面導(dǎo)入完畢并且內(nèi)容準(zhǔn)備好。 頁(yè)面唯一而且重要的一行是調(diào)用自定義標(biāo)記MYCAL:CALENDAR:
<MYCAL:CALENDAR></MYCAL:CALENDAR>
因?yàn)轫?yè)面已經(jīng)導(dǎo)入,故該調(diào)用將會(huì)象在calendar.htc所指定的那樣建立一個(gè)日歷。 您可能已經(jīng)注意到HTC可以包含別的HTC,calendar.htc包括兩個(gè)別的HTML組件,每個(gè)月的所有日期:day.htc和與當(dāng)前日期一致的today.htc,以下是canlendar.htc的頂部15行:
<HTML XMLNS:MYCAL XMLNS:TODAY XMLNS:ANYDAY> <HEAD> <?IMPORT NAMESPACE="ANYDAY" IMPLEMENTATION="day.htc"/> <?IMPORT NAMESPACE="TODAY" IMPLEMENTATION="today.htc"/>
<PUBLIC:COMPONENT tagName="CALENDAR"> <ATTACH EVENT="oncontentready" ONEVENT="fnInit()"/> </PUBLIC:COMPONENT> <SCRIPT LANGUAGE="JavaScript"> <!-- function fnInit() { defaults.viewLink = document; } // --> </SCRIPT>
第一行在這些HTC會(huì)用到的XML命名空間。這些命名空間即包括本頁(yè)自己要用到的,也包括頁(yè)面需調(diào)用的命名空間(ANYDAY 和 TODAY ),注意命名空間并不一定要和HTC文件文件名一致。接著,我們導(dǎo)入這些HTC:
<?IMPORT NAMESPACE="ANYDAY" IMPLEMENTATION="day.htc"/> <?IMPORT NAMESPACE="TODAY" IMPLEMENTATION="today.htc"/>
當(dāng)我們解析到這些行,瀏覽器將一直等到要導(dǎo)入的文件被導(dǎo)入才繼續(xù)頁(yè)面解析(同步導(dǎo)入)。 然后我們定義CALENDAR自定義標(biāo)記:
<PUBLIC:COMPONENT tagName="CALENDAR"> <ATTACH EVENT="oncontentready" ONEVENT="fnInit()"/> </PUBLIC:COMPONENT>
PUBLIC:COMPONENT用來(lái)描述CALENDAR標(biāo)記,在開(kāi)始和結(jié)束標(biāo)記之間,您可以將事件附加到CALENDAR標(biāo)記上,事件oncontentready將在calendar.htc文件全部被導(dǎo)入,并被解析時(shí),指定處理時(shí)間的是定義在JAVASCRIPT的函數(shù):fnInit():
<SCRIPT LANGUAGE="JavaScript"> <!-- function fnInit() { defaults.viewLink = document; } // --> </SCRIPT>
viewLink指定的值非常重要,它是HTML組件的基礎(chǔ),它連接了HTML組件和調(diào)用該HTML組件的頁(yè)面,defaults對(duì)象有別的屬性并且會(huì)在別的地方被覆蓋,我們給viewLink屬性賦的是HTML文檔對(duì)象,正因?yàn)樵撨B接,我們才可以建立HTC組件和包含頁(yè)面互訪。 我們將在后面解釋日歷的層。注意,盡管在日歷中當(dāng)月的當(dāng)天框和其他天框、空框的樣式不一樣,但是我們通過(guò)優(yōu)先級(jí)法則來(lái)實(shí)現(xiàn)在包含頁(yè)中,HTML組件忽略任何相互沖突的樣式定義。calendar.htc的樣式定義如下:
<STYLE> TD { background-color:tan; width:50; height:50; } </STYLE>
現(xiàn)在將該定義和日歷比較,只有空框是的顏色是黃褐色的,我們調(diào)用的HTC忽略了這些定義,被調(diào)用的頁(yè)面都嵌入了頁(yè)面定制。以下調(diào)用TODAY:DAY HTML組件:
<TODAY:DAY value=' + dayOfMonth + '></TODAY:DAY>
我們只是簡(jiǎn)單的傳入了當(dāng)月中的第幾天,同樣的調(diào)用ANYDAY:DAY 也是簡(jiǎn)單的傳入當(dāng)月中的第幾天:
<ANYDAY:DAY value=' + dayOfMonth + '></ANYDAY:DAY> 大多數(shù)人在上網(wǎng)的時(shí)候,都會(huì)瀏覽網(wǎng)頁(yè)提供給我們的信息。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!