網(wǎng)站重構(gòu):在不改變外部行為的前提下,,簡化結(jié)構(gòu)、添加可讀性,,而在網(wǎng)站前端保持一致的行為,。 也就是說是在不改變UI的情況下,對網(wǎng)站進(jìn)行優(yōu)化,,在擴(kuò)展的同時保持一致的UI,。 對于傳統(tǒng)的網(wǎng)站來說重構(gòu)通常是: 表格(table)布局改為div+css Pexelshttps://www./sites/73241.html 天堂圖片網(wǎng)https://www./sites/73243.html 你有用過哪些前端性能優(yōu)化的方法,?(1) 減少http請求次數(shù):css Sprites, js,、css源碼壓縮,、圖片大小控制合適;網(wǎng)頁Gzip,,CDN托管,,data緩存 ,圖片服務(wù)器,。 (2) 前端模板 js+數(shù)據(jù),,減少由于html標(biāo)簽導(dǎo)致的帶寬浪費,前端用變量保存AJAX請求結(jié)果,,每次操作本地變量,,不用請求,減少請求次數(shù) (3) 用innerhtml代替DOM操作,,減少DOM操作次數(shù),,優(yōu)化JavaScript性能。 (4) 當(dāng)需要設(shè)置的樣式很多時設(shè)置className而不是直接操作style,。 (5) 少用全局變量,、緩存DOM節(jié)點查找的結(jié)果。減少IO讀取操作,。 (6) 避免使用css Expression(css表達(dá)式)又稱Dynamic properties(動態(tài)屬性),。 (7) 圖片預(yù)加載,將樣式表放在頂部,,將腳本放在底部 加上時間戳,。 (8) 避免在頁面的主體布局中使用table,table要等其中的內(nèi)容完全下載之后才會顯示出來,,顯示比div+css布局慢,。 對普通的網(wǎng)站有一個統(tǒng)一的思路,就是盡量向前端優(yōu)化,、減少數(shù)據(jù)庫操作,、減少磁盤IO。向前端優(yōu)化指的是,,在不影響功能和體驗的情況下,,能在瀏覽器執(zhí)行的不要在服務(wù)端執(zhí)行,能在緩存服務(wù)器上直接返回的不要到應(yīng)用服務(wù)器,,程序能直接取得的結(jié)果不要到外部取得,,本機(jī)內(nèi)能取得的數(shù)據(jù)不要到遠(yuǎn)程取,內(nèi)存能取到的不要到磁盤取,,緩存中有的不要去數(shù)據(jù)庫查詢,。減少數(shù)據(jù)庫操作指減少更新次數(shù)、緩存結(jié)果減少查詢次數(shù)、將數(shù)據(jù)庫執(zhí)行的操作盡可能的讓你的程序完成(例如join查詢),,減少磁盤IO指盡量不使用文件系統(tǒng)作為緩存,、減少讀寫文件次數(shù)等。程序優(yōu)化永遠(yuǎn)要優(yōu)化慢的部分,,換語言是無法“優(yōu)化”的,。 |
|