zoukankan      html  css  js  c++  java
  • PHP 网站优化小记

    Apache+php 网站性能优化

    1.开启GZIP压缩(针对文件大小)  网页大小可以压缩率可以达到百分之70多;

       一、打开php.ini配置文件,找到zlib.output_compression = Off,将

    zlib.output_compression = Off;

    zlib.output_compression_level = -1

    修改为

    zlib.output_compression = On;
    zlib.output_compression_level = 6

    php gzip配置知识点:

      1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。

      2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)

      3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩

      二、保存php.ini配置文件,并重启apache服务器

      三、打开apache 配置文件httpd.conf,配置装载deflate_module

         #LoadModule deflate_module modules/mod_deflate.so

          去除开头的#号;

    设置压缩类型

    <IfModule deflate_module>  
        SetOutputFilter DEFLATE  
        # Don’t compress images and other  
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary  
        SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary  
        SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary  
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css  
        AddOutputFilterByType DEFLATE application/ms* applicationnd* application/postscript application/javascript application/x-javascript

    </IfModule>  

    并重启apache即可。

    2.减少request

      一、文件合并

           方法(1)

                        

    下面是使用PHP通过GZIP压缩CSS的实例。

    在存放CSS的文件夹中新建一个style.php文件,在此文件中加入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23

    if(extension_loaded('zlib')){//检查服务器是否开启了zlib拓展
    ob_start('ob_gzhandler');
    }
    header ("content-type: text/css; charset: gb2312");//注意修改到你的编码
    header ("cache-control: must-revalidate");
    $offset = 60 * 60 * 24;//css文件的距离现在的过期时间,这里设置为一天
    $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
    header ($expire);
    ob_start("compress");
    function compress($buffer) {//去除文件中的注释
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    return $buffer;
    }
     
    //包含你的全部css文档
    include('global.css');
    include('layout.css');
     
    if(extension_loaded('zlib')){
    ob_end_flush();//输出buffer中的内容,即压缩后的css文件
    }
    ?>

    如果你处理的是JavaScript文件,你需要将上面代码中的第5行的Content-type修改成以下:

    header ("content-type:application/x-javascript; charset: gb2312");

    同样需要注意的是文件的编码,这里我用的是gb2312,如果你采用的是UTF-8或其他编码,修改成对应的即可。

    修改完成之后,在原引入CSS和JS文件的地方,将.css后缀/.js后缀的文件更换成这个style.php文件即可,如:

    script type="text/javascript" src="http://www.i1323.net/scripts/11.js.php?v=121

    由于上面代码中使用到了HTTP的Expires(过期)属性用于在客户端缓存CSS/JS代码,所以,如果过期时间设置的太长(比如2020 年),当你在服务器端修改了JS/CSS代码时,客户端可能不会立即生效。解决办法是:在php文件后面添加一个随机参数,如上面例子中的v=121,当下次修改了文件时,记得相应修改此随机参数即可。

         方法(2)

       可以使用第三方框架如 Mint 解压到根目录就行 使用很方便 例如下:

    <SCRIPT src="min/f=/js/jquery1.8.js,/js/global.js,/js/index.js,/js/jquery-powerFloat.js,/js/util.js," type=text/javascript></SCRIPT>
     一次加载所有所需的JS

      二、懒加载

    例如使用瀑布流,按要求优化首次加载的资源特别是图片比较多的时候。使用AJAX加载会较多。

    三、资源大小优化

    JS、CSS、图片 等资源 尽量將大小压缩至最小

    JS、CSS 推荐工具yuicompressor

  • 相关阅读:
    UVALive 6909 Kevin's Problem 数学排列组合
    UVALive 6908 Electric Bike dp
    UVALive 6907 Body Building tarjan
    UVALive 6906 Cluster Analysis 并查集
    八月微博
    hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
    hdu 5792 World is Exploding 树状数组
    hdu 5791 Two dp
    hdu 5787 K-wolf Number 数位dp
    hdu 5783 Divide the Sequence 贪心
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/2843281.html
Copyright © 2011-2022 走看看