在PHP中仅缓存页面的一部分

前端之家收集整理的这篇文章主要介绍了在PHP中仅缓存页面的一部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以仅在 PHP中缓存页面的特定部分,或者在 PHP脚本中缓存特定代码段的输出?似乎当我尝试缓存特定页面时,它会缓存整个页面,这不是我想要的,我的页面中的一些内容应该在每个页面加载时更新而其他页面(例如包含来自数据库的数据的下拉列表) )每小时左右只需更新一次.
Zend_Cache是

我可能会使用Zend Frameworks Zend_Cache库.

您可以使用此组件而无需使用整个框架.

跳到Zend Framework Download Page并抓住最新的.

下载核心文件后,您需要在项目中包含Zend_Cache.
Zend_Cache docs.

您是否已决定如何缓存数据?你在使用文件系统吗?或者你是memcache?一旦知道了要使用的内容,就需要使用特定的Zend_Cache后端.

Zend_Cache后端/ Zend_Cache前端

>您需要使用后端(如何在存储中缓存您想要缓存的内容)和
>你需要使用一个前端(你如何实际想要缓存…比如使用缓冲区,或者缓存函数结果等)

后端文档:Zend_Cache Backends
前端文件Zend_Cache Frontends

所以你会做这样的事……

<?PHP
// configure caching backend strategy
$backend = new Zend_Cache_Backend_Memcached(
    array(
        'servers' => array( array(
            'host' => '127.0.0.1','port' => '11211'
        ) ),'compression' => true
) );

// configure caching frontend strategy
$frontend = new Zend_Cache_Frontend_Output(
    array(
        'caching' => true,'cache_id_prefix' => 'myApp','write_control' => true,'automatic_serialization' => true,'ignore_user_abort' => true
    ) );

// build a caching object
$cache = Zend_Cache::factory( $frontend,$backend );

这将创建一个使用Zend_Cache_Frontend_Output缓存机制的缓存.

要使用你想要的Zend_Cache_Frontend_Output,它将是simple.你将使用输出而不是核心.您传递的选项是相同的.然后使用它你会:

Zend_Cache_Frontend_Output – 用法

// if it is a cache miss,output buffering is triggered
if (!($cache->start('mypage'))) {

    // output everything as usual
    echo 'Hello world! ';
    echo 'This is cached ('.time().') ';

    $cache->end(); // output buffering ends

}

echo 'This is never cached ('.time().').';

有用的博客http://perevodik.net/en/posts/14/

对不起,这个问题花了比预期更长的时间,写了很多答案!

猜你在找的PHP相关文章