Zend's Server Pagecacheのようなものを作成してみたい。私が達成したいのは、ページの出力を保存することです。そのため、直接HTMLになると思いますが、動的データをページに挿入する可能性があります。動的プレースホルダを使用してフルページキャッシュを実装する手段
0
A
答えて
0
出力キャッシュは大きな問題です。それは正しいことですか、あなたはデザインを少し考えなければなりません。
ここには2通りあります。コードサンプルは説明のためのものであり、実際の解決策ではありません。
- ブロックキャッシュとダイナミックコンポジション。おそらく最善の方法。あなたのページをいくつかのブロックに分割します。各ブロックは別々の関数/クラスで生成する必要があります。 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>
- 全体のページキャッシュ。ページをブロックに分割したくない場合は、ページ全体をキャッシュし(Zend_Cache_Frontend_ *を使用することもできます)、PHPのstr関数を使用して動的部分を置換または挿入します。フレームワークによって自動的に送信されるのではなく、Viewの出力をキャプチャする必要があります(これを変更する方法については、ドキュメントを参照してください)。
0
いつでもajaxで動的データを読み込むことができます。 例: ユーザーがログインして投票などを行う場合。
関連する問題
- 1. プレースホルダを使用して動的にコントロールを生成する
- 2. 動的情報を使ってフルページキャッシュを行う方法
- 3. C#を使用してSAML 2.0を実装する手順
- 4. Object.seal、Object.freeze、Object.preventExtensionsの代替手段を実装する
- 5. クライアントサイドセッションを手動で実装する
- 6. 手動でextend/superを実装する
- 7. C#を使用してASP.Netで動的FAQを実装する方法は?
- 8. C#で '動的'を使用して訪問者パターンを実装する
- 9. jenkinsパイプラインプラグインを使用して動的な並列ビルドを実装するアイデア
- 10. プレースホルダを使用してページに動的にユーザーコントロールを追加する
- 11. Crypto ++ CTRモード手動実装
- 12. サポートベクターマシンの手動実装
- 13. JavaクライアントとJBoss Webervicesを使用してプッシュ型の手法を実装する
- 14. Google Checkoutを使用してオークションサイトの取引手数料を実装する
- 15. OSGiを使用して自動更新を実装する
- 16. VBスクリプトを使用して自動ログインを実装する
- 17. Javascriptを使用した動的ShuttleBoxの実装
- 18. 即決の静的手段
- 19. スタティックデコレータを使用した動的装飾
- 20. 同期化手段とvarsを使用したマルチGPU BNレイヤの実装方法
- 21. foldlを使用して実装する
- 22. ASP.NET MVCはUpdateProgress WebFormsコントロールのアナログを実装する手段を提供していますか?
- 23. node.jsを段階的に使用してラリーカスタムアプリケーションを作成する
- 24. Scrapyを使用してWebサイトを段階的にクロールする
- 25. setTimeoutを使用してアイテムを段階的にフェードアウトする
- 26. PyMC3:pymc3.traceplot()を使用してトレースプロットの手段をオーバーラップする方法
- 27. WPF DataGridを動的に実装する
- 28. iPhoneで動的テキストを実装する
- 29. 動的ビューを実装する方法
- 30. Visual Studioを使用して明示的にnインターフェイスを実装
これは、ページがたくさんのブロックに分割されているため、ユーザーの操作中にコードの一部を更新できるようにするためには適していません。 –