? ? ? ?嘉興網(wǎng)站建設公司在網(wǎng)站制作中Div與Table的選擇,大家都說(shuō)DIV的布局精簡(jiǎn)代碼,但是用DIV替代TABLE所節約的代碼又被CSS(樣式)所占用,而這些樣式大多用于控制DIV的排版布局。那你會(huì )說(shuō)了,CSS可以放在外部重用啊,要想得到這個(gè)問(wèn)題的答案請往下看。?重用性與下載量:?? ? ? ?統一使用一個(gè).css的樣式表文件,可以實(shí)現修改一次,全站修改的效果,這樣使得維護的成本更低。但是請大家換一個(gè)角度想,如果所有頁(yè)面在加載時(shí)都要訪(fǎng)問(wèn)一個(gè)文件,那這個(gè)文件每天的下載量,特別時(shí)在搜狐、新浪的網(wǎng)站平臺上將達到幾億次,這就需要后面有很多臺前端web服務(wù)器在做支撐,那后臺的成本無(wú)形中也提高了很多。如果后臺支撐沒(méi)有做好,那么頁(yè)面就會(huì )出現花屏,之前所作的工作也是白費。很多人會(huì )問(wèn),這樣的幾率太小了。我們所作的工作就是為了避免這一兩次意外的發(fā)生,如果意外發(fā)生了,對于門(mén)戶(hù)后果將是不堪設想的。?HTTP通訊:?? ? ? ?統一的樣式表文件采用外部調用的形式,這樣每次加載單個(gè)頁(yè)面都會(huì )多一次對服務(wù)器的http請求服務(wù)器都會(huì )增加一次響應,這樣對前端web服務(wù)器會(huì )是很大的消耗。而原來(lái)很長(cháng)時(shí)間都是將css和js寫(xiě)在頁(yè)面前端(大家可以看看sohu和sina的頁(yè)面,大多都是采用這樣的形式),而不是作為外部調用的形式,也是為了盡量避免給服務(wù)器增加消耗。?
頁(yè)面緩存:
? ? ? ?每次用戶(hù)訪(fǎng)問(wèn)的頁(yè)面,都會(huì )在瀏覽器緩存中保存一定時(shí)間,以保證用戶(hù)下次再訪(fǎng)問(wèn)該頁(yè)面時(shí)能夠大大提高頁(yè)面顯示速度。而每次修改都會(huì )使頁(yè)面重新下載,對于每個(gè)外部導入的樣式文件也是如此,如果CSS文件修改,那么訪(fǎng)問(wèn)網(wǎng)站的每一個(gè)頁(yè)面都會(huì )重新下載,而以往的將樣式寫(xiě)在頁(yè)面中的方式,只是修改的頁(yè)面需要重新下載。?兼容性:?? ? ? ?對于CSS(樣式表)并不是所有瀏覽器的所有版本都支持的很好,比如IE5以前的瀏覽器對于CSS的支持就不是很好。而現在使用IE5以前版本瀏覽器的用戶(hù)不在少數,這樣就使得在頁(yè)面制作的過(guò)程中需要針對不同瀏覽器版本進(jìn)行測試,以保證兼容性,無(wú)形中也增加很多工作量(至少我接觸的開(kāi)發(fā)人員制作div頁(yè)面比table頁(yè)面的標準時(shí)間要長(cháng)一些)。?橫切與延展性:
? ? ? ? 橫切——傳統的布局方式為了使頁(yè)面下載的更快,把頁(yè)面自上而下分成若干個(gè)塊,但是往往采用DIV進(jìn)行布局的頁(yè)面都會(huì )出現這樣的情況,由于每塊中間欄或者其他欄內容條數不固定導致兩邊欄目沒(méi)有同時(shí)自適應,而出現留白。?而在出現內容不固定的情況,頁(yè)面就會(huì )變成下面的樣子:?相比之下傳統的table方式更容易規避這樣情況的發(fā)生。?以上我們只是討論某一技術(shù)在某一領(lǐng)域的可用性,而非技術(shù)本身。?? ? ? ?說(shuō)了這么多并不是說(shuō)DIV這種布局方式不好,而是說(shuō)我們應該正確的看待Table在以?xún)热轂榛A的大型門(mén)戶(hù)中的作用,而不是人云亦云。之所以DIV的布局方式?jīng)]有在大型網(wǎng)站應用,不是說(shuō)門(mén)戶(hù)沒(méi)有用DIV是技術(shù)落后,是里面的人沒(méi)有前瞻性,而是多種原因決定的。網(wǎng)易之所以全部采用DIV的方式是因為內容并不是他們主攻方向。而對于其他門(mén)戶(hù)來(lái)說(shuō),這樣的決策是要靠時(shí)間來(lái)驗證的。只是現在這個(gè)時(shí)機還不成熟而已。