晋城吧对DiscuzX进行的前端优化要点


Posted in PHP onSeptember 05, 2010

最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得。

前端优化 推荐工具

火狐浏览器+Yslow+google pagespeed+Firebug 具体下载地址 请自行百度

一、DX后台 及DIY的优化

1.首页DIY避免过多层的嵌套

DX的每一个框架都会产生非常多非常多非常多的 代码。我的首页已经尽可能简单了,结果光 DOM 有1600+,?逅牢伊恕?/P>

所以,尽可能不要用过多的框架嵌套

2.避免过多的用户头像调用

首页的会员调用是使用重定向的,会减慢网页的速度,UCenter倒是能改为伪静态,但是目前是有BUG的,没有自定义头像 的会员头像是无法显示的

3.打开Gzip

在网站后台 或者到config.php文件 将Gzip打开

4.背景图尽可能重复利用,减少背景图的数量

各个栏目的背景图尽可能一样,这样可以重复利用图片,要找到美观和速度之间的平衡,这一条,我其实也还在不断的尝试 中,这里推荐监控宝的服务器访 问速度跟踪,可以全局掌握自己网站被用户访问时的速度状况。

5.打开并设置好后台的各种优化和缓存

关于这方面的资料很多,我就不在这里浪费时间了,(被pia飞~~~)

二、代码 及空间优化

1.利用minify压缩合并js

DX的CSS 基本合并的很好,一个页面一到2个,但是JS就很多了。打开你的模板的common目录的header.htm,看到么。密密麻麻的js ,而过 多的文件会造成连接过多,减慢速度。

这里我们利用minify将其合并 压缩 缓存

首先,下载minify的压缩包,解压,将min文件夹上传到网站根目录。

然后修改2个文件:

1.min 文件夹下的groupsConfig.php

在上边的代码后边加上如下的代码

    'portal' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/forum.js', '//static/js/portal.js'),               'forum' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/forum.js'),                'home' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/home_cookie.js', '//static/js/home_common.js', '//static/js/home_face.js', '//static/js/home_manage.js'),                    'userapp' => array('//static/js/common.js', '//static/js/home_friendselector.js', '//static/js/forum.js', '//static/js/home_common.js'),
2.修改模板的header.htm

什么??这个文件在哪里????我被你们打败了。。

修改如下 ,将第一段代码 替换为第二段

                                                                                                                                                                                                                                                                                                                                                                                                         {subtemplate common/css_diy}

替换为

                                                                                                                                                                                                                                                                                   {subtemplate common/css_diy}

打开晋城吧首页,点开源代码 ,看看 开头 的 head 里的 js 是不是少了很多啊

2.修改图片、flash、css、js的缓存时间

为上述东东设置缓存一个长长的缓存时间。比如1年,那么在第一次访问后,用户在这一年中都不用下载背景图,flash,css,js 。当然前提是你没有修改

方法 是修改网站根目录.htaccess文件

加入如下代码

        Header set Cache-Control "max-age=43200″        #cache css, javascript and text files for one week       Header set Cache-Control "max-age=604800″        #cache flash and images for one month      Header set Cache-Control "max-age=2592000″     #disable cache for script files      Header unset Cache-Control     

三、总结

恩,暂时的优化就是这些,通过这些优化,晋城吧 的yslow评分从50 D 上升到80+ B ,有些页面的评分为90+ A.总体还是很有效果的。

如果你需要转发此文,还请保留晋城吧链 接,如果能帮忙做个友链,那就太感谢了。。。

附上一些网站在07年Yslow的评分

Amazon

 D

AOL

CNN

eBay

 C

Google

 A

MSN

MySpace

Wikipedia

Yahoo!

 A

YouTube

作者:晋城吧

文章来源:http://www.jincheng8.com.cn/thread-303-1-1.html

PHP 相关文章推荐
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
深入php常用函数的使用汇总
Jun 08 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 #PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 #PHP
队列在编程中的实际应用(php)
Sep 04 #PHP
php生成随机密码的三种方法小结
Sep 04 #PHP
PHP安全技术之 实现php基本安全
Sep 04 #PHP
小文件php+SQLite存储方案
Sep 04 #PHP
PHP中文件上传的一个问题
Sep 04 #PHP
You might like
PHP抽象类与接口的区别详解
2019/03/21 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
Python 实现链表实例代码
2017/04/07 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
详解Python高阶函数
2020/08/15 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
技术比武方案
2014/05/19 职场文书
研究生求职自荐书
2014/06/23 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
个人德育工作总结
2015/03/05 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
用python修改excel表某一列内容的操作方法
2021/06/11 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python