2012-02-29 22 views

回答

0

輸出緩存是一個很大的問題。做對了,你需要考慮一下設計。

這裏有2種方法。代碼示例只是爲了解釋,它不是一個可行的解決方案。

  1. 塊高速緩存和動態組合。可能是最好的方法。將你的頁面分成幾個塊。每個塊應該由獨立的函數/類生成。您可以使用Zend_Cache_Frontend_ *對象來緩存這些塊。一旦您的應用程序知道要顯示什麼,在控制器中您可以使用緩存區塊和動態部分組合輸出。

    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> 
  1. 整頁緩存,串替代。如果你不希望把頁面分成塊,你可以緩存整個頁面(也可以使用Zend_Cache_Frontend_ *),然後使用PHP str函數替換或插入動態部分。您需要捕獲視圖的輸出,而不是由框架自動發送(請參閱文檔以瞭解如何更改此視圖)。
0

您可以隨時使用ajax加載動態數據。 例如: 如果用戶登錄並要投票或什麼的。

+0

這不適合,因爲頁面被分成大量的塊,例如我想要一段代碼在用戶交互過程中可用於更新。 – 2012-02-29 08:42:52