晉城吧對(duì)DiscuzX進(jìn)行的前端優(yōu)化要點(diǎn)
前端優(yōu)化 推薦工具
火狐瀏覽器+Yslow+google pagespeed+Firebug 具體下載地址 請(qǐng)自行百度
一、DX后臺(tái) 及DIY的優(yōu)化
1.首頁DIY避免過多層的嵌套
DX的每一個(gè)框架都會(huì)產(chǎn)生非常多非常多非常多的 代碼。我的首頁已經(jīng)盡可能簡(jiǎn)單了,結(jié)果光 DOM 有1600+,囧死我了。
所以,盡可能不要用過多的框架嵌套
2.避免過多的用戶頭像調(diào)用
首頁的會(huì)員調(diào)用是使用重定向的,會(huì)減慢網(wǎng)頁的速度,UCenter倒是能改為偽靜態(tài),但是目前是有BUG的,沒有自定義頭像 的會(huì)員頭像是無法顯示的
3.打開Gzip
在網(wǎng)站后臺(tái) 或者到config.php文件 將Gzip打開
4.背景圖盡可能重復(fù)利用,減少背景圖的數(shù)量
各個(gè)欄目的背景圖盡可能一樣,這樣可以重復(fù)利用圖片,要找到美觀和速度之間的平衡,這一條,我其實(shí)也還在不斷的嘗試 中,這里推薦監(jiān)控寶的服務(wù)器訪 問速度跟蹤,可以全局掌握自己網(wǎng)站被用戶訪問時(shí)的速度狀況。
5.打開并設(shè)置好后臺(tái)的各種優(yōu)化和緩存
關(guān)于這方面的資料很多,我就不在這里浪費(fèi)時(shí)間了,(被pia飛~~~)
二、代碼 及空間優(yōu)化
1.利用minify壓縮合并js
DX的CSS 基本合并的很好,一個(gè)頁面一到2個(gè),但是JS就很多了。打開你的模板的common目錄的header.htm,看到么。密密麻麻的js ,而過 多的文件會(huì)造成連接過多,減慢速度。
這里我們利用minify將其合并 壓縮 緩存
首先,下載minify的壓縮包,解壓,將min文件夾上傳到網(wǎng)站根目錄。
然后修改2個(gè)文件:
1.min 文件夾下的groupsConfig.php
<?php |
在上邊的代碼后邊加上如下的代碼
'portal' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/forum.js', '//static/js/portal.js'), |
什么??這個(gè)文件在哪里????我被你們打敗了。。
修改如下 ,將第一段代碼 替換為第二段
<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í)間
為上述東東設(shè)置緩存一個(gè)長(zhǎng)長(zhǎng)的緩存時(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é)
恩,暫時(shí)的優(yōu)化就是這些,通過這些優(yōu)化,晉城吧 的yslow評(píng)分從50 D 上升到80+ B ,有些頁面的評(píng)分為90+?。粒傮w還是很有效果的。
如果你需要轉(zhuǎn)發(fā)此文,還請(qǐng)保留晉城吧鏈 接,如果能幫忙做個(gè)友鏈,那就太感謝了。。。
附上一些網(wǎng)站在07年Yslow的評(píng)分
Amazon ?。?/P>
AOL F
CNN ?。?/P>
eBay C
Google ?。?/P>
MSN F
MySpace ?。?/P>
Wikipedia C
Yahoo! A
YouTube ?。?/P>
作者:晉城吧
文章來源:http://www.jincheng8.com.cn/thread-303-1-1.html
相關(guān)文章
了解Joomla 這款來自國(guó)外的php網(wǎng)站管理系統(tǒng)
joomla在國(guó)外很熱,就連臺(tái)灣都有不少站使用joomla,國(guó)內(nèi)就對(duì)joomla缺乏了解。大多都使用dedecms或者phpcms等。在這四個(gè)月來一直在學(xué)習(xí)joomla,覺得用它來建站很方便。2010-03-03PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫操作實(shí)現(xiàn)方法圖文詳解
這篇文章主要介紹了PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫操作實(shí)現(xiàn)方法,結(jié)合圖文形式詳細(xì)分析了php連接Oracle數(shù)據(jù)庫的相關(guān)配置、實(shí)現(xiàn)方法、遇到的問題、解決方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-04-04PHP中strpos、strstr和stripos、stristr函數(shù)分析
這篇文章主要為大家詳細(xì)介紹了PHP中strpos、strstr和stripos、stristr函數(shù)源碼,感興趣的朋友可以參考一下2016-06-06php生成并下載word文件到本地實(shí)現(xiàn)方法詳解
要給最常用出租屋管理系統(tǒng)增加個(gè)合同功能,mark下知識(shí)點(diǎn)。要生成合同就需要使用phpword。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08