2008年12月9日 星期二

html的優缺點




框架優缺點


框架的優點

框架(FRAME)為HTML 4.0規格,大部份新版的瀏覽程式都能正確無誤地執行,所以已在網際網路上被廣泛使用。尤其是一些強調高功能又複雜的網站,幾乎都使用框架(FRAME)設計。如果你也想表示自己"超人一等的智慧和功力",不妨採用框架設計。

框架(FRAME)也可配合舊版的瀏覽程式。你只要願意多花點時間和精力,你仍然可以服務全部的網友。

框架(FRAME)減少下載時間。網頁每次只更新部分框格,像是網站的標幟和目錄等固定內容都不用重新下載。

框架(FRAME)使網站更好使用。舉例而言,你可以將網站目錄放在某一框格,讓網友容易點選。

框架(FRAME)減少你維護網站的時間。舉例而言,你若將網站目錄放在某一框格內,你增添了一大類網頁,你只要修改目錄網頁即可,若不採用框架而要達到同樣效果,你必須更改每一篇網頁中的目錄區。或是你更改網站標幟,你只要更改視窗最上方或最下方的橫幅框格即可。



框架的缺點

有些舊版的瀏覽程式雖然支援框架(FRAME),但是會有一些奇怪的反應,造成網友的不耐與反感。例如你點選瀏覽程式的回上頁(BACK)按鈕時,即使網友在框架(FRAME)型式網站瀏覽了許多頁了,它仍會回到前一個非框架網頁,等於是跳出框架型式網站。(有一個簡單的解決的方法,就是在你的網頁自行加上回上頁的連結按鈕)。有時候是網友更改了框格大小,當重新整理網頁(Refresh, Reload)時,網頁內容固然是重新下載了,但框格卻還是更改的大小。

框架(FRAME)內容的變換就像個難解的謎,你明明認為點選目錄中某個按鈕時,相對映的框格內容會隨之變化,可是往往在網站愈來愈大的時候,非預期的狀況就會發生。你的網友好像在猜"樂透了(Lottery)",按個按鈕後看看那一個框格的內容會變化。你必須在除錯上花加倍功夫才行。

分割視窗佔用空間。有些框架(FRAME)型式網站設計不佳,上下各有一橫幅框格,上面是網站標幟和廣告,底下是版權宣告;中間居然還分成三欄,左邊是目錄,右邊還是廣告;結果可以顯示內容的空間就所剩無幾,瀏覽程式此時又自動加上捲軸,你說這怎麼看啊?所以在設計框架(FRAME)時,不妨找一個解析度設為640x480的螢幕,觀看一下視覺效果。

搜尋引擎不顯示你的網站。有些搜尋引擎網站會定期爬過網際網路,登錄它所找到的每一篇網頁。那麼,找到了不是很好,為什麼有問題呢?因為框架(FRAME)型式網站通常是目錄和內容分開,所以當搜尋引擎顯示查詢結果時,並不是顯示你的網站主頁或目錄網頁,而只是內容網頁,上面通常沒有任何連結可回到你的網站主頁。


好壞參半,該怎麼辦?

你也許是框架(Frame)設計的忠誠擁護者,或是極端厭煩框架設計。不管你是那一類型的人,你都必須瞭解框架設計,也許你自己不使用框架,但其他人會,反之亦然。

眾位看倌在逛過蝙蝠洞之後,應該有個感覺:艾爾弗烈德似乎不太喜歡使用框架(Frame)或是不太會使用框架。我的確是在避免使用框架設計,這只是個人的判斷而已,沒有好壞的分別。有一個廣為接受的良好設計是兩欄型式的無縫框架,左欄(框格)內為目錄,你設計一排精緻的按鈕,點選之後,右欄(框格)變換顯示內容。

有時候,某些個人網站會利用框架(Frame)將網友"鎖"在他們的網站內,你若不向瀏覽程式重新輸入其它網站的地址,而只是點選網頁中的連結至其他網站,此時僅會改變右欄的內容,有點像是其它網站受到該個人網站的管理。這是一個很具爭議性的法律及道德問題,大型網站(AOL, MSN, YAHOO)都對這種行為提出警告,並有不少訴訟案例。而且,你想像一下原來要佔滿整個視窗的網頁,現在被擠入一個框格內,有時候是慘不卒睹。

反過來說,你是框架(Frame)型式網頁的設計者,由於目錄網頁和內容網頁分開,搜尋引擎不會顯示你的主頁,此時你會希望在顯示內容網頁時不要跳離框架。或是網友們另開視窗而只單獨顯示原為某一框格中的內容網頁的時候,你不希望這種情形發生,因為原先顯示在框格(較小)內的視覺風格和效果,"散"到整個視窗(較大)後盪然無存。

在這兒,艾爾弗烈德提供兩段原始碼,可以不允許你的網頁出現在框格內,或是強制要求你的網頁以框架(Frame)型式顯現。(它們運用到爪哇語法(JavaScript),你如果不會爪哇語法沒有關係,請容我另文介紹。)



不!不!不!

如果你不希望某篇網頁出現在框格(他人網站)內,只要在旗標之內加入下列爪哇語法:

onLoad="if(parent.frames.length!=0)top.location='pagename.html';"

onLoad= 當網頁下載時。(注意:onLoad只有字母L是大寫)。
if 條件控制句。
parent.frames.length!=0 檢查上層框格層次數目是否不等於零。
parent 指上一層。
frames 指框格。
lenght 指層次數目。
!=0 為運算式,不等於零。
top.location 最上層的框格--整個視窗。
pagename.html 你的網頁名稱,通常是加入這段爪哇語法的網頁,或是你的首頁。
大部份的新版瀏覽程式都支援JavaScript 1.0和框架(Frame),這樣就可以減少你的非框架型式網頁在非自願的情況下被擠入小小的框格中了。



要!要!要!

如果你不希望某篇網頁以非框架(Frame)型式出現,只要在旗標之後加入下列爪哇語法:



這依然是 if 條件控制句,如果 self (本頁) == (等於) top (最上層視窗),則如何如何......。如果不等於,則表示本頁在框架(Frame)型式網頁內,將不要求瀏覽程式採取任何動作。

採取什麼行動呢?

document 本文件(網頁)。
write 寫入(引號內文字)。
META HTTP-EQUIV="refresh" 重新下載(refresh, reload)網頁。
CONTENT="1;  等待一秒。因為我們加上說明文字:「這是框架型式網頁的一部分,你將會被導引至本站主頁,以得到更完整的服務。」所以設定等待時間為一秒,讓網友看到這段訊息。若是設定為零,則會立刻重新下載網頁。
URL=framepagename.html 你的框架網頁或是首頁名稱。
這段語法就是當你的框架網頁出現在單一視窗時,要求瀏覽程式在網頁內加上重新下載指令,而導引網友至含有整個框架型式的網頁。



結語

希望這兩段爪哇語法沒令你覺得一頭霧水,不過你若是要採用框架(Frame),本來就要多花點功夫啊!



【框架設計】【基本框架旗標】【框架變化運用】【無縫框架】
【內套框架】【框架著色】【同時更新框架】【框架優缺點】








沒有留言: