zoukankan      html  css  js  c++  java
  • PHP-OB缓存

    使用php自己的缓存机制

    下面的用下面的代码引入

    <?php
        echo 'ob1';
        header("Content-type:text/html;charset=utf-8");
        echo 'ob2';
        echo 'ob3';

    就这样一段简单的代码在php5.2以上的版本中是没有错误的,如果是5.2以下的就会出现一个warning的警告错误,这是你需要在php.ini中配置output_buffering,默认是关闭的;如果关闭就会出现上面的错误,这里只要把ob缓存打开就好,开启ob缓存的方法有两种

    1.配置php.ini文件output_buffering=4096

    2.直接在程序中ob_start();

    这样问题解决但是不知道具体啥原因,首先分析一下ob缓存的机制

    ob缓存的几个基本原则:

    1.如果ob缓存打开,则echo的数据首先放在ob缓存.
    2.如果是header信息,就直接放在程序缓存
    3. 当页面执行到最后,会把ob缓存的数据,放到程序缓存,然后一次返回给浏览器

    如图有具体的说明

    假如你没有开启ob缓存,那么程序是是这样执行的

    这样的话不符合http请求协议

    但是如果开启ob缓存的话

    下面是一些关于ob缓存的有关函数

    ob_start();//开启缓存

    ob_clean();清空ob缓存中的数据

    ob_end_clean();清空ob缓存中的数据并且关闭ob缓存

    ob_flush();把ob缓存数据,刷新到程序缓存,不关闭ob缓存

    ob_end_flush();刷新到程序缓存,同时关闭ob缓存

    ob_get_contents();获取ob缓存中的数据

    最后给大家分享一段很神奇的代码

    <?php
        echo str_repeat(' ',1024);//注意' '里面是空格
        for($i=0;$i<5;$i++){
        echo $i;
          flush();//把程序缓存的数据,强制刷新到浏览的缓存里面
          sleep(1);//休眠1秒,在sleep这个过程中http连接没有断
        }
  • 相关阅读:
    eas之动态刷新Table
    eas之导入导出
    eas之事件
    eas之获得任何一个KDTable的选中行
    eas之创建一个UI界面并对其操作
    eas之style接口
    eas之指定虚模式
    eas之数据融合
    eas之kdtable格式化
    eas之视图冻结与解冻
  • 原文地址:https://www.cnblogs.com/codelifewangwen/p/3204533.html
Copyright © 2011-2022 走看看