Php 使用动态占位符实现全页缓存的方法
我想尝试创建类似Zend的服务器页面缓存的东西。我想要实现的是存储页面输出,所以我想它应该是直接的html,但是可以在页面中插入一些动态数据。您总是可以使用ajax加载动态数据。 例子:Php 使用动态占位符实现全页缓存的方法,php,zend-framework,Php,Zend Framework,我想尝试创建类似Zend的服务器页面缓存的东西。我想要实现的是存储页面输出,所以我想它应该是直接的html,但是可以在页面中插入一些动态数据。您总是可以使用ajax加载动态数据。 例子: 如果用户登录并准备投票或做其他事情。输出缓存是一个大问题。做对了,你需要考虑一下设计 这里有两种方法。代码示例仅用于解释,它不是有效的解决方案 块缓存和动态组合。也许是最好的办法。把你的页面分成几个块。每个块应由单独的函数/类生成。您可以使用Zend_Cache_Frontend_*对象来缓存这些块。一旦应用程
如果用户登录并准备投票或做其他事情。输出缓存是一个大问题。做对了,你需要考虑一下设计 这里有两种方法。代码示例仅用于解释,它不是有效的解决方案 块缓存和动态组合。也许是最好的办法。把你的页面分成几个块。每个块应由单独的函数/类生成。您可以使用Zend_Cache_Frontend_*对象来缓存这些块。一旦应用程序知道要显示什么,就可以在控制器中使用缓存块和动态部分组合输出。 具有子字符串替换的整页缓存。如果不希望将页面划分为块,也可以使用Zend_cache_Frontend_*缓存整个页面,然后使用PHP str函数替换或插入动态部分。您需要捕获视图的输出,而不是让框架自动将其发送到文档中,以了解如何更改它。
这不合适,因为页面被分成了很多块,例如,我希望在用户交互过程中有一些代码可以更新。
class CachedController extends Zend_Action_Controller
{
public function indexAction()
{
$this->_view->leftBlock = $this->leftBlock();
$this->_view->rightBlock = $this->rightBlock();
}
protected function leftBlock()
{
// prepare left block, can use Zend_View if you like
// use Zend_Cache to cache the block
}
protected function rightBlock()
{
// prepare left block, can use Zend_View if you like
// use Zend_Cache to cache the block
}
}
/* VIEW SCRIPT */
<html>
<body>
<div class="left">
Left cached block here
<?php echo $this->leftBlock; ?>
</div>
<div class="main">
Do Your dynamic part here
</div>
<div class="right">
Right cached block here
<?php echo $this->rightBlock; ?>
</div>
</body>
</html>