• 高并发大流量专题---7、动态语言静态化


    高并发大流量专题---7、动态语言静态化

    一、总结

    一句话总结:

    缓存(静态化)的业务逻辑很简单:如果缓存时间没到,就用,如果没有或者缓存时间到了或者修改了,就重新生成

    1、什么是动态语言静态化 及静态化适合情况?

    生成为静态HTML文件:将现有PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态HTML文件的过程。
    对实时性要求不高的页面

    2、动态语言代码 为什么要静态化?

    避免逻辑计算和数据查询:动态脚本通常会做逻辑计算和数据查询,访问量越大,服务器压力越大
    避免服务器压力过大:访问量大时可能会造成CPU负载过高,数据库服务器压力过大
    降低服务器压力:静态化可以减低逻辑处理压力,降低数据库服务器查询压力

    3、动态语言代码 静态化的实现方式?

    使用模板引擎:可以使用Smarty的缓存机制生成静态HTML缓存文件
    利用ob系列的函数
    使用Smarty的缓存机制生成静态HTML缓存文件
    1、smarty缓存函数
    $smarty->cache_dir=$ROOT."/cache";//缓存目录
    $smarty->caching=true;/是否开启缓存
    $smarty->cache_lifetime="3600";//缓存时间
    
    $smarty->display(string templateL,string cache _id[,string compile_id]]);
    
    2、smarty清除缓存函数
    $smarty->clear_all_cache();//清除所有缓存
    $smarty->clear_cache("file.html");//清除指定的缓存
    $smarty->clear_cache('article.html",$art_id);//清除同一个模板下的指定缓存号的缓存
    
    
    
    利用ob系列的函数
    ob_start():打开输出控制缓冲
    ob_get_contents():返回输出缓冲区内容
    ob_clean():清空输出缓冲区
    ob_end_flush():冲刷出(送出)输出缓冲区内容并关闭缓冲
    
    
    ob_start();
    输出到页面的HTML代码.
    …
    ob_get_contents();
    ob_end_flush();
    fopen()写入

    4、利用ob系列的函数 实现php的静态化给我们什么启示?

    |||-begin

    ob_start();
    输出到页面的HTML代码.ob_get_contents();
    ob_end_flush();
    fopen()写入

    |||-end

    就照着模板写或者网上找代码,实在不要太简单

    5、利用ob系列的函数 如何判断文件的inode修改时间,以判断是否过期?

    使用filectime函数

    二、内容在总结中

     
  • 相关阅读:
    CentOS7_装机软件推荐
    http://www.osyunwei.com/archives/4788.html
    SQL经典面试题集锦
    异步方式
    webwxgetcontact 获取的是通讯录里的群或好友的信息
    perl 微信取自己的ID
    perl weixin 发消息接口 webwxsendmsg
    Invalid project description.
    运行期间id是不变的
    关于微信 init接口返回的Count和webwxbatchgetcontact post请求的参数Count
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11048268.html
Copyright © 2020-2023  润新知