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

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

前端优化 推荐工具

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

一、DX后台 及DIY的优化

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

DX的每一个框架都会产生非常多非常多非常多的 代码。我的首页已经尽可能简单了,结果光 DOM 有1600+,囧死我了。

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

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


<?php
   /**
   * Groups configuration for default Minify implementation
   * @package Minify
   */
   /**
   * You may wish to use the Minify URI Builder app to suggest
   * changes. http://yourdomain/min/builder/
   **/
  return array(

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


    '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

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

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

<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}-->

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

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

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

方法 是修改网站根目录.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>

三、总结

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

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

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

Amazon     D

AOL        F

CNN        F

eBay       C

Google     A

MSN        F

MySpace    D

Wikipedia  C

Yahoo!     A

YouTube    D

作者:晋城吧

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

时间: 2024-10-18 16:57:14

晋城吧对DiscuzX进行的前端优化要点_php技巧的相关文章

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

最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得. 前端优化 推荐工具 火狐浏览器+Yslow+google pagespeed+Firebug 具体下载地址 请自行百度 一.DX后台 及DIY的优化 1.首页DIY避免过多层的嵌套 DX的每一个框架都会产生非常多非常多非常多的 代码.我的首页已经尽可能简单了,结果光 DOM 有1600+,囧死我了. 所以,尽可能不要用

对DiscuzX 进行的前端优化要点

本文为晋城吧技术团队原创,转发请勿删除本文链接. 晋城吧的服务器在美国,延迟相对国内略微要高一些,所以优化就显得非常重要.最近,康盛的DX版本基本确定,至少短期内不会大变了,因此,我对晋城吧的整站进行了前端优化,把自己 所做的操作记录下来,一是有个记录,防止忘掉,二是和网上的朋友们共享下自己的心得. 前端优化 推荐工具 火狐浏览器+Yslow+google pagespeed+Firebug 具体下载地址 请自行百度 一.DX后台 及DIY的优化 1.首页DIY避免过多层的嵌套 DX的每一个框架

Zend Studio (eclipse)使用速度优化方法_php技巧

原文标题是优化 myeclipse7.0 速度(尤其是building workspace),都是eclipse设置一样的. 大家一定对buileding workspace时那缓慢的速度给困扰到了吧~ 其实只要把project选项里的 building automatically前的勾去掉,就可以快很多了.. 另外大家一定对 myeclipse 的速度经常感到痛苦把,ok,现在开始给 myeclipse 提速: 一.加大JVM的非堆内存 打开 eclipse.ini -showsplash c

WordPress网站性能优化指南_php技巧

1.选择一个好的主机 尽量不要使用免费主机或者共享主机(Godaddy啊.Bluehost啊等等所谓无限带宽.无限网站之类的主机) 首先,你的域名和你的主机最好在一个IDC哪儿,如果不是的话,建议你采用口碑良好的DNS服务商,让域名以最快的速度解析到主机上,这不是重点,重点是你的服务器/主机空间应该够快,怎么才能够快呢?CPU的配置.CPU的使用率.物理内存的大小.磁盘类型以及磁盘的I/O性能(包括Mysql数据库服务器所用磁盘).Mysql响应速度以及Mysql并发数等等,都会影响到网站的快与

php阳历转农历优化版_php技巧

本文实例为大家分享了php阳历转农历代码,供大家参考,具体内容如下 <?php function nongli($riqi) { //优化修改 20160807 FXL $nian=date('Y',strtotime($riqi)); $yue=date('m',strtotime($riqi)); $ri=date('d',strtotime($riqi)); #源码部分原作者:沈潋(S&S Lab) #农历每月的天数 $everymonth=array( 0=>array(8,0

Dedecms V3.1 生成HTML速度的优化办法_php技巧

由于版本兼容性等各方面的原因,实际上dedecms的索引有点混乱,如果索引设置得适合,影响dedecmsHTML生成速度的,主要是获得没有按默认按排序的文章列表的时候,由于要重新排序,数据量大时速度会很不理想,可以通过下面几个步骤轻松优化: 1.进入 phpmyadmin ,把 dedecms 站点 dede_archives 除了 ID 主键的索引外的索引删除: 2.用SQL创建如下索引: Alter TABLE `#@__archives` ADD INDEX  `click` (`clic

编写漂亮的代码 - 将后台程序与前端程序分开_php技巧

在编写PHP程序时,有些代码是用来处理一些事务,例如操作数据库.进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码.首先我们应该清晰地区分这两种代码,把前者称为后台程序,把后者称为前端程序.     因为PHP是一种嵌入式编程语言,也就是说,所有的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处.但是,"物极必反",如果在一段较长的程

php代码书写习惯优化小结_php技巧

(1)使用 static 静态方法比普通方法快4倍(2)echo输出快于print(3)连接字符使用 , 代替 .(4)循环之前先取出最大值,而不是在循环里面取值    正确的方法      $max = count($array);      for ($i=0;$i<$max;$i++) {      echo $i;      }    错误的方法      for ($i=0;$i<count($array);$i++) {      echo $i;      }(5)使用unset

PHP性能优化 产生高度优化代码_php技巧

1.将PHP升级到最新版 提高性能的最简单的方式是不断升级.更新PHP版本. 2.使用分析器 网站运行缓慢的原因颇多,Web应用程序极其复杂,让人扑朔迷离.而一种可能性在于PHP代码本身.这个分析器可以帮助你快速找出造成瓶颈的代码,提高网站运行的总体性能. Xdebug PHP extension提供了强大的功能,可以用来调试,也可以用来分析代码.方便开发人员直接跟踪脚本的执行,实时查看综合数据.还可以将这个数据导入到可视化的工具 KCachegrind中. 3.检错报告 PHP支持强大的检错功