Yii架構官方指南系列31——緩衝:頁面緩衝

來源:互聯網
上載者:User



頁面緩衝指的是緩衝整個頁面的內容。頁面緩衝可以發生在不同的地方。 例如,通過選擇適當的頁面頭,用戶端的瀏覽器可能會緩衝網頁瀏覽有限時間。 Web應用程式本身也可以在緩衝中儲存網頁內容。 在本節中,我們側重於後一種辦法。

頁面緩衝可以被看作是 片段快取一個特殊情況 。 由於網頁內容是往往通過應用布局來產生,如果我們只是簡單的在布局中調用beginCache() 和endCache(),將無法正常工作。 這是因為布局在CController::render()方法裡的載入是在頁面內容產生之後。

如果想要緩衝整個頁面,我們應該跳過產生網頁內容的動作執行。我們可以使用COutputCache作為動作 過濾器來完成這一任務。下面的代碼示範如何配置緩衝過濾器:


public function filters(){    return array(        array(            'COutputCache',            'duration'=>100,            'varyByParam'=>array('id'),        ),    );}

上述過濾器配置會使過濾器適用於控制器中的所有行動。 我們可能會限制它在一個或幾個行動通過使用外掛程式操作器。 更多的細節中可以看過濾器。

Tip: 我們可以使用COutputCache作為一個過濾器,因為它從CFilterWidget繼承過來, 這意味著它是一個工具(widget)和一個過濾器。事實上,widget的工作方式和過濾器非常相似: 工具widget (過濾器filter)是在action動作裡的內容執行前執行,在執行後結束。


以上就是Yii架構官方指南系列31——緩衝:頁面緩衝的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.