晉城吧對DiscuzX進(jìn)行的前端優(yōu)化要點(diǎn)
前端優(yōu)化 推薦工具
火狐瀏覽器+Yslow+google pagespeed+Firebug 具體下載地址 請自行百度
一、DX后臺 及DIY的優(yōu)化
1.首頁DIY避免過多層的嵌套
DX的每一個框架都會產(chǎn)生非常多非常多非常多的 代碼。我的首頁已經(jīng)盡可能簡單了,結(jié)果光 DOM 有1600+,囧死我了。
所以,盡可能不要用過多的框架嵌套
2.避免過多的用戶頭像調(diào)用
首頁的會員調(diào)用是使用重定向的,會減慢網(wǎng)頁的速度,UCenter倒是能改為偽靜態(tài),但是目前是有BUG的,沒有自定義頭像 的會員頭像是無法顯示的
3.打開Gzip
在網(wǎng)站后臺 或者到config.php文件 將Gzip打開
4.背景圖盡可能重復(fù)利用,減少背景圖的數(shù)量
各個欄目的背景圖盡可能一樣,這樣可以重復(fù)利用圖片,要找到美觀和速度之間的平衡,這一條,我其實(shí)也還在不斷的嘗試 中,這里推薦監(jiān)控寶的服務(wù)器訪 問速度跟蹤,可以全局掌握自己網(wǎng)站被用戶訪問時的速度狀況。
5.打開并設(shè)置好后臺的各種優(yōu)化和緩存
關(guān)于這方面的資料很多,我就不在這里浪費(fèi)時間了,(被pia飛~~~)
二、代碼 及空間優(yōu)化
1.利用minify壓縮合并js
DX的CSS 基本合并的很好,一個頁面一到2個,但是JS就很多了。打開你的模板的common目錄的header.htm,看到么。密密麻麻的js ,而過 多的文件會造成連接過多,減慢速度。
這里我們利用minify將其合并 壓縮 緩存
首先,下載minify的壓縮包,解壓,將min文件夾上傳到網(wǎng)站根目錄。
然后修改2個文件:
1.min 文件夾下的groupsConfig.php
|
<?php |
在上邊的代碼后邊加上如下的代碼
|
'portal' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/forum.js', '//static/js/portal.js'), |
什么??這個文件在哪里????我被你們打敗了。。
修改如下 ,將第一段代碼 替換為第二段
| <script type="text/javascript" src="{$_G[setting][jspath]}common.js?{VERHASH}"></script> <script type="text/javascript" src="{$_G[setting][jspath]}home_friendselector.js?{VERHASH}"></script> <!--{if $_G['basescript'] == 'forum' || $_G['basescript'] == 'group'}--> <script type="text/javascript" src="{$_G[setting][jspath]}forum.js?{VERHASH}"></script> <!--{elseif $_G['basescript'] == 'home'}--> <script type="text/javascript" src="{$_G[setting][jspath]}home_cookie.js?{VERHASH}"></script> <script type="text/javascript" src="{$_G[setting][jspath]}home_common.js?{VERHASH}"></script> <script type="text/javascript" src="{$_G[setting][jspath]}home_face.js?{VERHASH}"></script> <script type="text/javascript" src="{$_G[setting][jspath]}home_manage.js?{VERHASH}"></script> <!--{elseif $_G['basescript'] == 'userapp'}--> <script type="text/javascript" src="{$_G[setting][jspath]}home_common.js?{VERHASH}"></script> <!--{elseif $_G['basescript'] == 'portal'}--> <script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script> <!--{/if}--> <!--{if $_G['basescript'] != 'portal' && $_GET['diy'] == 'yes' && ($_G[mod] == 'topic' || $_G[group][allowdiy]) && !empty($_G['style']['tplfile'])}--> <script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script> <!--{/if}--> <!--{if $_GET[diy] == 'yes' && ($_G[mod] == 'topic' || $_G[group][allowdiy]) && !empty($_G['style']['tplfile'])}-->{subtemplate common/css_diy}<!--{/if}--> |
替換為
| <!--{if $_G['basescript'] == 'forum' || $_G['basescript'] == 'group'}--> <script type="text/javascript" src="/min/g=forum"></script> <!--{elseif $_G['basescript'] == 'home'}--> <script type="text/javascript" src="/min/g=home"></script> <!--{elseif $_G['basescript'] == 'userapp'}--> <script type="text/javascript" src="/min/g=userapp"></script> <!--{elseif $_G['basescript'] == 'portal'}--> <script type="text/javascript" src="/min/g=portal"></script> <!--{/if}--> <!--{if $_G['basescript'] != 'portal' && $_GET['diy'] == 'yes' && ($_G[mod] == 'topic' || $_G[group][allowdiy]) && !empty($_G['style']['tplfile'])}--> <script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script> <!--{/if}--> <!--{if $_GET[diy] == 'yes' && ($_G[mod] == 'topic' || $_G[group][allowdiy]) && !empty($_G['style']['tplfile'])}-->{subtemplate common/css_diy}<!--{/if}--> |
打開晉城吧首頁,點(diǎn)開源代碼 ,看看 開頭 的 head 里的 js 是不是少了很多啊
2.修改圖片、flash、css、js的緩存時間
為上述東東設(shè)置緩存一個長長的緩存時間。比如1年,那么在第一次訪問后,用戶在這一年中都不用下載背景圖,flash,css,js 。當(dāng)然前提是你沒有修改
方法 是修改網(wǎng)站根目錄.htaccess文件
加入如下代碼
| <ifmodule mod_expires.c> <FilesMatch ".(html|htm)$ "> Header set Cache-Control "max-age=43200″ </FilesMatch> #cache css, javascript and text files for one week <FilesMatch ".(js|css|txt)$ "> Header set Cache-Control "max-age=604800″ </FilesMatch> #cache flash and images for one month <FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$ "> Header set Cache-Control "max-age=2592000″ </FilesMatch> #disable cache for script files <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$ "> Header unset Cache-Control </FilesMatch> </ifmodule> |
三、總結(jié)
恩,暫時的優(yōu)化就是這些,通過這些優(yōu)化,晉城吧 的yslow評分從50 D 上升到80+ B ,有些頁面的評分為90+?。粒傮w還是很有效果的。
如果你需要轉(zhuǎn)發(fā)此文,還請保留晉城吧鏈 接,如果能幫忙做個友鏈,那就太感謝了。。。
附上一些網(wǎng)站在07年Yslow的評分
Amazon ?。?/P>
AOL ?。?/P>
CNN ?。?/P>
eBay C
Google ?。?/P>
MSN ?。?/P>
MySpace ?。?/P>
Wikipedia C
Yahoo! ?。?/P>
YouTube D
作者:晉城吧
文章來源:http://www.jincheng8.com.cn/thread-303-1-1.html
相關(guān)文章
關(guān)于session在PHP5的配置文件中的詳細(xì)設(shè)置參數(shù)說明
關(guān)于session在PHP5的配置文件中的詳細(xì)設(shè)置參數(shù)說明,需要的朋友可以參考下。2011-04-04
Highcharts?圖表中圖例顯示狀態(tài)存儲的功能設(shè)計詳解
這篇文章主要介紹了Highcharts?圖表中圖例顯示狀態(tài)存儲的功能設(shè)計詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
php foreach 參數(shù)強(qiáng)制類型轉(zhuǎn)換的問題
大家都知道foreach的參數(shù)如果不是數(shù)組類型,在運(yùn)行的時候 就會出現(xiàn)類似“Warning: Invalid argument supplied for foreach() in XXX”warning信息。2010-12-12

