zoukankan      html  css  js  c++  java
  • 缓存技术

    smarty局部不缓存
    {nocache}
    {/nocache}
    高效率内存缓存
    memcached
    自己写的缓存
    缓存头部
    1. <?php
    2. $ctime=150;
    3. //自动创建cache目录来存放缓存的html文件
    4. $path="cache/";
    5. if(file_exists($path)){
    6. }else{
    7. mkdir($path,0777,true);
    8. }
    9. $fileinfo=$_SERVER['REQUEST_URI'];
    10. //$fn= pathinfo($fileinfo,PATHINFO_FILENAME);//输出myc
    11. //echo $fn.'<br>';
    12. $cy= md5($fileinfo);//使html的前缀用md5的加密方式
    13. $currpage=isset($_GET['p']) ? $_GET['p'] : 1;
    14. $id=isset($_GET['id']) ? $_GET['id'] :1;
    15. $cf=$path.$cy.$currpage.'_'.$id.'.html';
    16. ob_start();
    17. // echo filemtime($cf);
    18. // echo '<br>';
    19. // echo time()-filemtime($cf);//判断缓存时间差
    20. //判断缓存时间是否失效
    21. if(file_exists($cf) && (time()-filemtime($cf))<$ctime){
    22. include $cf;
    23. exit;
    24. }
    25. ?>
    缓存结尾
    1. <?php
    2. $html=ob_get_contents();
    3. file_put_contents($cf, $html);
    4. ?>
    缓存案例
    1. <?php
    2. $ctime=150;
    3. //自动创建cache目录来存放缓存的html文件
    4. $path="cache/";
    5. if(file_exists($path)){
    6. }else{
    7. mkdir($path,0777,true);
    8. }
    9. $fileinfo=$_SERVER['REQUEST_URI'];
    10. // // $fn= pathinfo($fileinfo,PATHINFO_FILENAME);//输出myc
    11. // echo $fn.'<br>';
    12. $cy= md5($fileinfo);//使html的前缀用md5的加密方式
    13. $currpage=isset($_GET['p']) ? $_GET['p'] : 1;
    14. $id=isset($_GET['id']) ? $_GET['id'] :1;
    15. $cf=$path.$cy.$currpage.'_'.$id.'.html';
    16. ob_start();
    17. // echo filemtime($cf);
    18. // echo '<br>';
    19. // echo time()-filemtime($cf);//判断缓存时间差
    20. //判断缓存时间是否失效
    21. if(file_exists($cf) && (time()-filemtime($cf))<$ctime){
    22. include $cf;
    23. exit;
    24. }
    25. require_once 'inc/libs/Smarty.class.php';
    26. include 'inc/Db.class.php';
    27. $db=new Db();
    28. $s=new Smarty();
    29. // echo $s::SMARTY_VERSION;
    30. // echo smarty::SMARTY_VERSION;//输出版本号
    31. $s->debugging=false;//关闭调试
    32. $s->caching=false;//关闭缓存
    33. $s->setTemplateDir('inc/html/');//设置模板文件路径
    34. $s->setCacheDir('inc/cache/');//如果开启了缓存,设定缓存目录
    35. $s->setCompileDir('inc/compile/');//设定模板编译后的路径
    36. $f=isset($_GET['i']) ? $_GET['i'] : 'index';
    37. switch ($f){
    38. case 'teacher';
    39. // $trs=$db->query('teacher','*',"flag='y'",'order by sort desc');
    40. // $db->css1();
    41. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    42. $trs=$db->pager('teacher',$currpage,'*',2,"flag='y'",'order by sort desc','i=teacher&');
    43. $s->assign('trs',$trs);
    44. $s->assign('page',$trs[1]);
    45. break;
    46. case 'jy';
    47. // $db->css1();
    48. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    49. $srs=$db->pager('job',$currpage,'*',6,'1=1','order by id desc','i=jy&');
    50. $s->assign('srs',$srs);
    51. $s->assign('page',$srs[1]);
    52. break;
    53. case 'newsarticle';
    54. $id=$_GET['nid'];
    55. $db->updatenum('news','num=num+1','id='.$id);
    56. $new=$db->query('news','*','id='.$id,'order by id desc');
    57. $s->assign('new',$new);
    58. break;
    59. case 'news';
    60. // $db->css1();
    61. $cn=$_GET['cname'];
    62. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    63. $nn=$db->pager('news',$currpage,'*',10,"flag='y' and cname='$cn'",'order by id desc','i=news&cname='.$cn.'&');
    64. $s->assign('nn',$nn);
    65. default:
    66. $trs=$db->query('teacher','*','1=1','order by sort desc','limit 2');
    67. $s->assign('trs',$trs);
    68. $zx=$db->query('news','*',"flag='y' and cname='网络营销资讯'",'order by id desc','limit 7');
    69. $s->assign('zx',$zx);
    70. $zs=$db->query('news','*',"flag='y' and cname='网络营销知识'",'order by id desc','limit 7');
    71. $s->assign('zs',$zs);
    72. $zjy=$db->query('news','*',"flag='y' and cname='最新就业信息'",'order by id desc','limit 7');
    73. $s->assign('zjy',$zjy);
    74. break;
    75. $zxk=$db->query('news','*',"flag='y' and cname='网络营销课程'",'order by id desc','limit 7');
    76. $s->assign('zxk',$zxk);
    77. break;
    78. }
    79. $zjy=$db->query('news','*',"flag='y' and cname='最新就业信息'",'order by id desc','limit 7');
    80. $s->assign('zjy',$zjy);
    81. $s->assign('zxy',urlencode('最新就业信息'));//解决ie里面的乱码问题
    82. $s->assign('zxs',urlencode('网络营销资讯'));
    83. $s->assign('zss',urlencode('网络营销知识'));
    84. $s->assign('zsy',urlencode('网络营销课程'));
    85. $s->display($f.'.html');
    86. $html=ob_get_contents();
    87. file_put_contents($cf, $html);
    使用smarty配合缓存技术
    1. <?php
    2. require_once 'inc/libs/Smarty.class.php';
    3. $s=new Smarty();
    4. // echo $s::SMARTY_VERSION;
    5. // echo smarty::SMARTY_VERSION;//输出版本号
    6. $s->debugging=false;//关闭调试
    7. $s->caching=true;//关闭缓存
    8. $s->cache_lifetime=3600;//设定缓存时间
    9. $s->setTemplateDir('inc/html/');//设置模板文件路径
    10. $s->setCacheDir('inc/cache/');//如果开启了缓存,设定缓存目录
    11. $s->setCompileDir('inc/compile/');//设定模板编译后的路径
    12. $s->setConfigDir('inc/config/');//设定smarty配置文件的目录
    13. $f=isset($_GET['i']) ? $_GET['i'] : 'index';
    14. // $s->clearAllCache();
    15. if($s->isCached($f.'.html')){
    16. $s->display($f.'.html');
    17. exit;
    18. }
    19. include 'inc/Db.class.php';
    20. $db=new Db();
    21. switch ($f){
    22. case 'teacher';
    23. // $trs=$db->query('teacher','*',"flag='y'",'order by sort desc');
    24. // $db->css1();//这样引入会打乱页面
    25. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    26. $trs=$db->pager('teacher',$currpage,'*',2,"flag='y'",'order by sort desc','i=teacher&');
    27. $s->assign('trs',$trs);
    28. $s->assign('page',$trs[1]);
    29. break;
    30. case 'jy';
    31. // $db->css1();
    32. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    33. $srs=$db->pager('job',$currpage,'*',6,'1=1','order by id desc','i=jy&');
    34. $s->assign('srs',$srs);
    35. $s->assign('page',$srs[1]);
    36. break;
    37. case 'newsarticle';
    38. $id=$_GET['nid'];
    39. $db->updatenum('news','num=num+1','id='.$id);
    40. $new=$db->query('news','*','id='.$id,'order by id desc');
    41. $s->assign('new',$new);
    42. break;
    43. case 'news';
    44. // $db->css1();
    45. $cn=$_GET['cname'];
    46. $currpage=isset($_GET['p']) ? $_GET['p'] :1;
    47. $nn=$db->pager('news',$currpage,'*',10,"flag='y' and cname='$cn'",'order by id desc','i=news&cname='.$cn.'&');
    48. $s->assign('nn',$nn);
    49. default:
    50. $trs=$db->query('teacher','*','1=1','order by sort desc','limit 2');
    51. $s->assign('trs',$trs);
    52. $zx=$db->query('news','*',"flag='y' and cname='网络营销资讯'",'order by id desc','limit 7');
    53. $s->assign('zx',$zx);
    54. $zs=$db->query('news','*',"flag='y' and cname='网络营销知识'",'order by id desc','limit 7');
    55. $s->assign('zs',$zs);
    56. $zjy=$db->query('news','*',"flag='y' and cname='最新就业信息'",'order by id desc','limit 7');
    57. $s->assign('zjy',$zjy);
    58. break;
    59. $zxk=$db->query('news','*',"flag='y' and cname='网络营销课程'",'order by id desc','limit 7');
    60. $s->assign('zxk',$zxk);
    61. break;
    62. }
    63. $zjy=$db->query('news','*',"flag='y' and cname='最新就业信息'",'order by id desc','limit 7');
    64. $s->assign('zjy',$zjy);
    65. $s->assign('zxy',urlencode('最新就业信息'));//解决ie里面的乱码问题
    66. $s->assign('zxs',urlencode('网络营销资讯'));
    67. $s->assign('zss',urlencode('网络营销知识'));
    68. $s->assign('zsy',urlencode('网络营销课程'));
    69. $s->display($f.'.html');
    首先开启缓存
    $s->caching=true;//关闭缓存 
     $s->clearAllCache();清除缓存目录
    如果加入如下的此段代码,则页面中不能出现局部缓存{nocache},局部不缓存,立即修改的文件会立即显示
    // if($s->isCached($f.'.html')){
    //     $s->display($f.'.html');
    //    exit;
    // }     
    把如下的引入文件放到exit;后面
    include 'inc/Db.class.php';
    $db=new Db();     
    smarty局部不缓存{nocache}
    包含的局部缓存一定要在{foreach}外面,如果在里面$v肯定没有效果可以让局部缓存的部分不用{foreach}
    刷新显示新的时间和数据
    1. {nocache}
    2. <h1>{date('Y-m-d H:i:s')}</h1>
    3. {/nocache}
    {insert} {/insert}里面包含的文件都不能进行缓存
    文本文件,软件配置文件的格式有
    .ini
    .xml
    .conf
    a




  • 相关阅读:
    浏览器网络相关概念
    量化投资:以python为工具
    Quantitative Strategies for Achieving Alpha (三)
    Quantitative Startegies for Achieving Alpha(二)
    Quantitative Strategies for Achieving Alpha(一)
    打开量化投资的黑箱(二)
    打开量化投资的黑箱(一)
    量化投资学习(一)
    handy源码阅读(六):tcp类
    handy源码阅读(六):udp类
  • 原文地址:https://www.cnblogs.com/lsr111/p/4629019.html
Copyright © 2011-2022 走看看