CSS與JS性能問(wèn)題初步解決方案
在開(kāi)發(fā)過(guò)程中,有時(shí)遇到由于緩存問(wèn)題導(dǎo)致頁(yè)面不能及時(shí)更新,有時(shí)頁(yè)面引入了不必需的樣式腳本文件,有時(shí)由于文件太多,字節(jié)過(guò)大導(dǎo)致頁(yè)面的性能緩慢,為了解決這些問(wèn)題,個(gè)人為JS性能問(wèn)題設(shè)想了一個(gè)初步的解決方案。
JS性能問(wèn)題解決方案如下:
|
描述 |
備注 |
資源級(jí)別 |
頁(yè)面的資源級(jí)別: |
|
優(yōu)化方案 |
優(yōu)化主要從以下幾個(gè)方面: |
其他的優(yōu)化是從開(kāi)發(fā)技巧上進(jìn)行的,取決于專業(yè)水平 |
文件輸出方案 |
基于資源級(jí)別及優(yōu)化方案,制定以下4種方案: 1、直接引用單個(gè)文件依次引入(<link/>、<script/>) 2、基于1,進(jìn)行單個(gè)文件壓縮 3、按照資源級(jí)別合并成新的單個(gè)文件 4、基于3,進(jìn)行合并后的文件壓縮
|
思考點(diǎn) 方案3: 如何確定合并的文件個(gè)數(shù)? |
緩存問(wèn)題 |
采用時(shí)間戳后綴 |
|
f2econfig_json |
配置文件: var f2eJson={ "Update":"20091015",//根據(jù)時(shí)間戳更新緩存 "Compress":"1",//文件輸出方案(1,2,3,4) "Common":[//全站公共樣式 "common/global.css" ], "Module":{ //模塊及樣式 "模塊1":["product,.css"] }, "Page":{//每個(gè)頁(yè)面所擁有的樣式 "index.php":["","sys/index.css"], //第一個(gè)元素存儲(chǔ)模塊引用名稱,無(wú)則留空 "search.php":["模塊1","product/search.css"] //引用多個(gè)模塊,用 “,”隔開(kāi),比如: 模塊1,模塊2 } } |
|
f2engine.php |
1、讀取json配置文件,轉(zhuǎn)化成php數(shù)組 2、根據(jù)每個(gè)頁(yè)面的資源參數(shù),查找該頁(yè)面擁有的樣式資源 3、根據(jù)文件輸出方案,進(jìn)行處理 4、在頁(yè)面上輸出 |
|
JS性能問(wèn)題解決的例子 |
比如search.php這個(gè)頁(yè)面的樣式引用
|
|
【編輯推薦】