1:速度和加載方式方面的區別
div 的加載方式是即讀即加載,遇到 <div> 沒有遇到 </div> 的時候同樣加載 div 中的內容,讀多少加載多少;table 的加載方式是完成後加載,遇到 <table> 後,在讀到 </table> 以前,table 中的內容不加載,或者傳輸中斷了(document.onload()事件)的時候加載,這是由於TABLE牽涉到多行多列問題,因此只有當TABLE全部內容加載完畢,IE才知道該怎麼顯示
2:在網頁應用中的差異
若是頁面首尾加 table ,那麼必須等整個頁面讀完了才加載
若是頁面首尾加 div ,無任何影響
3:DIV與Table佈局在大型網站的可用性比較
DIV與TABLE自己並不存在什麼優缺點,所謂web標準只是推薦的是正確的使用標籤,比如說:DIV用於佈局,而TABLE則原本就是轉二維數據的。讓TABLE作該作的事,並非說頁面裏不出現TABLE就是多麼多麼牛。
用DIV進行排版的優點就是我不說,你們應該都比較清楚。DIV是標準,是大勢所趨,但並不意味着全部的頁面都適合用它來作。
中國的門戶和國外的有很大的區別,中國網民並不喜歡信息量少的頁面,YAHOO到了中國頁面上的內容就多了很多,而上次改成簡潔的頁面後訪問量降低的厲害以致於沒過幾天就又改了回來。正式因爲中國的國情造就了搜狐、新浪這樣門戶。
爲何DIV不適合他們?下面我從幾個方面來逐一說明:
精簡代碼:
你們都說DIV的佈局精簡代碼,可是用DIV替代TABLE所節約的代碼又被CSS(樣式)所佔用,而這些樣式大多用於控制DIV的排版佈局。那你會說了,CSS能夠放在外部重用啊,要想獲得這個問題的答案請往下看。
重用性與下載量:
統一使用一個.css的樣式表文件,能夠實現修改一次,全站修改的效果,這樣使得維護的成本更低。可是請你們換一個角度想,若是全部頁面在加載時都要訪問一個文件,那這個文件天天的下載量,特別時在搜狐、新浪的網站平臺上將達到幾億次,這就須要後面有不少臺前端web服務器在作支撐,那後臺的成本無形中也提升了不少。若是後臺支撐沒有作好,那麼頁面就會出現花屏,以前所做的工做也是白費。不少人會問,這樣的概率過小了。咱們所做的工做就是爲了避 免這一兩次意外的發生,若是意外發生了,對於門戶後果將是不堪設想的。
HTTP通信:
統一的樣式表文件採用外部調用的形式,這樣每次加載單個頁面都會多一次對服務器的http請求服務器都會增長一次響應,這樣對前端web服務器 會是很大的消耗。而原來很長時間都是將css和js寫在頁面前端(你們能夠看看sohu和sina的頁面,大多都是採用這樣的形式),而不是做爲外部調用 的形式,也是爲了儘可能避免給服務器增長消耗。
頁面緩存:
每次用戶訪問的頁面,都會在瀏覽器緩存中保存必定時間,以保證用戶下次再訪問該頁面時可以大大提升頁面顯示速度。而每次修改都會使頁面從新下載,對於每一個外部導入的樣式文件也是如此,若是CSS文件修改,那麼訪問網站的每個頁面都會從新下載,而以往的將樣式寫在頁面中的方式,只是修改的頁面須要從新下載。
兼容性:
對於CSS(樣式表)並非全部瀏覽器的全部版本都支持的很好,好比IE5之前的瀏覽器對於CSS的支持就不是很好。而如今使用IE5之前版本 瀏覽器的用戶不在少數,這樣就使得在頁面製做的過程當中須要針對不一樣瀏覽器版本進行測試,以保證兼容性,無形中也增長不少工做量(至少我接觸的開發人員製做 div頁面比table頁面的標準時間要長一些)。
橫切與延展性:
橫切——傳統的佈局方式爲了使頁面下載的更快,把頁面自上而下分紅若干個塊,可是每每採用DIV進行佈局的頁面都會出現這樣的狀況,因爲每塊中間欄或者其餘欄內容條數不固定致使兩邊欄目沒有同時自適應,而出現留白。
以上咱們只是討論某一技術在某一領域的可用性,而非技術自己。
說了這麼多並非說DIV這種佈局方式很差,而是說咱們應該正確的看待Table在之內容爲基礎的大型門戶中的做用,而不是人云亦云。之因此 DIV的佈局方式沒有在大型網站應用,不是說門戶沒有用DIV是技術落後,是裏面的人沒有前瞻性,而是多種緣由決定的。網易之因此所有采用DIV的方式是由於內容並非他們主攻方向。而對於其餘門戶來講,這樣的決策是要靠時間來驗證的。只是如今這個時機還不成熟而已。
4:DIV+CSS
而如今我認爲DIV +CSS並非字面上的含義那麼簡單,而有兩重內在含義:
一、結構與表現分離,用DIV完成結構,用CSS控制表現,這樣帶來的好處很是多,DIV精簡了頁面,提升了靈活性。而精通CSS的設計師能避免DIV的重複嵌套,從而大大提升頁面加載速度,以及站點的能夠維護性。
二、選用DIV 來配合CSS的緣由,CSS 的核心是 「盒子模型」,而沒有哪一個標籤能比DIV更好的詮釋「盒子模型」的精髓,TABLE的結構過於複雜,並不能很好的作到這一點,雖然TABLE+CSS也是一種選擇,但別忘了DIV還有另一個優點,浮動層疊,並且用TABLE進行佈局的網站是不能經過W3C驗證的。
其實DIV的好處還遠遠不止這些,例如彈性佈局,用戶自定義佈局,DIV都展示出難以想象的靈活性,而富有語義的結構對搜索引擎的友好度也比TABLE要來的高,更不用說跨平臺的應用。DIV+CSS爲咱們提供了一個優雅而規範的技術框架,讓咱們能用最少的重複勞動,完成更多更美觀的頁面,從而提高整個團隊的效率,甚至改變長期以來網頁設計師與網頁程序員沒法同步工做的問題。
在我親身經驗中,使用DIV+CSS的團隊,與使用TABLE+CSS的團隊相比,工期縮短30%-50%。
劣勢:table佈局規避了許多瀏覽器不兼容的問題。而DIV則必須面對這些問題。css