美文网首页
face35 动态语言静态化

face35 动态语言静态化

作者: 谢凌 | 来源:发表于2018-11-12 18:28 被阅读0次

动态语言静态化

什么是动态语言静态化

将现有php等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定向到静态html文件的过程

fpm

对实时性要求不高的页面

为什么静态化

动态脚本通常会做逻辑计算和数据查询,访问量越大 服务器压力越大

访问量大时可能会造成cpu负载过高,数据库服务器压力过大

静态化可以减低逻辑处理压力 降低数据库服务器查询压力

静态化的实现方式

使用模板引擎

可以使用smarty的缓存机制生成静态html缓存文件

$smarty->cache_dir=$ROOT."/cache";//缓存目录

$smarty->caching=true;//是否开启缓存

$smarty->cache_lifetime="3600";缓存时间

$smarty->display(string  template[,string cache_id[,string compile_id]]);

$smarty->clear_all_cache();//清楚所有缓存

$smarty->clear_cache('file_html');//清除指定的缓存

$smarty->clear_cache('artcle.html',$art_id);//清除同一个模板下的指定缓存号的缓存

使用ob系列的函数

ob_start():打开输出控制缓冲

ob_get_contents() 返回输出缓冲区内容

ob_clean() 清空输出缓冲区

ob_end_flush()  冲刷出(送出)输出缓冲区内容并关闭缓冲

ob_start():打开输出控制缓冲

输出到页面的html代码

ob_get_contents() 返回输出缓冲区内容

ob_end_flush()  冲刷出(送出)输出缓冲区内容并关闭缓冲

fopen()写入

可以判断文件的inode修改时间,判断是否过期,使用 filectime函数

$cache_name=md5(__FILE__).'.html';

$cache_lifetime=3600;

if(filectime(__FILE__)<=filectime($cache_name) && file_exists($cache_name)&& filectime($cache_name)+$cache_lifetime >time()){

    echo  123;

    include $cache_name;

    die;

}

ob_start();

echo " <b>this is my script</b>";

$content=ob_get_contents();

ob_end_flush();

$handle= fopen($cache_name,'w');

fwrite($handle,$content);

fclose($handle);

$id=$_GET['id'];

    if(empty($id))$id='';

    $cache_name=md5(__FILE__).'-'.$id.'.html';

    $cache_lifetime=3600;

//    if(filectime(__FILE__)<=filectime($cache_name) && file_exists($cache_name)&& filectime($cache_name)+$cache_lifetime >time()){

    if( file_exists($cache_name)&& filectime($cache_name)+$cache_lifetime >time()){

      echo  123;

        include $cache_name;

      die;

    }

    ob_start();

  echo " <b>this is my script id=".$id."</b>";

    $content=ob_get_contents();

    ob_end_flush();

    $handle= fopen($cache_name,'w');

    fwrite($handle,$content);

    fclose($handle);

相关文章

  • face35 动态语言静态化

    动态语言静态化 什么是动态语言静态化 将现有php等动态语言的逻辑代码生成为静态html文件,用户访问动态脚本重定...

  • 动态语言静态化

    一、什么是动态语言静态化 将现有的PHP等动态语言的逻辑代码生成为静态HTML文件,用户访问动态脚本重定向到静态的...

  • 编译性语言、解释性语言、脚本语言、动态语言、静态语言、动态类型语

    编译型语言 解释型语言 脚本语言 动态语言 静态语言 静态类型语言 动态类型语言 解释以及区别

  • Objective-C 是不是动态语言 ?

    一、动态语言和静态语言的概念 首先,我们了解一个概念:动态语言和静态语言的概念; 静态:编译期间动态:运行期间 动...

  • 动态编程语言和静态编程语言

    动态编程语言:python等 静态编程语言:java等 动态编程语言和静态编程语言区别: 动态编程语言的变量并不是...

  • Python 语法(一)

    1、Python 语言特性 1.1 Python 是静态还是动态?强还是弱类型 动态强类型语言 动态还是静态:指...

  • 编程语言类型(动态语言,静态语言及其它)

    动态语言: 静态语言: 动态类型语言: 静态类型语言: 强类型语言: 弱类型语言: 计算机只能理解机器码,所有的高...

  • python面试题

    python语言特性 python是静态还是动态类型?是强类型还是弱类型? 动态强类型语言 动态还是静态指的是编译...

  • javaSE回顾_05

    数组: 静态初始化: //静态初始化 int[] a = {1,2,3}; 动态初始化: //动态初始化 int[...

  • iOS runtime详解一

    RunTime是什么? 众所周知OC是一门高级编程语言,也是一门动态语言。有动态语言那也就有静态语言,静态语言--...

网友评论

      本文标题:face35 动态语言静态化

      本文链接:https://www.haomeiwen.com/subject/kuncfqtx.html