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. クライアントサイドセッションを手動で実装する
- 4. プレースホルダを使用してページに動的にユーザーコントロールを追加する
- 5. C#で '動的'を使用して訪問者パターンを実装する
- 6. JavaクライアントとJBoss Webervicesを使用してプッシュ型の手法を実装する
- 7. Google Checkoutを使用してオークションサイトの取引手数料を実装する
- 8. OSGiを使用して自動更新を実装する
- 9. Javascriptを使用した動的ShuttleBoxの実装
- 10. ASP.NET MVCはUpdateProgress WebFormsコントロールのアナログを実装する手段を提供していますか?
- 11. ColdFusionの動的プレースホルダ
- 12. WPF DataGridを動的に実装する
- 13. iPhoneで動的テキストを実装する
- 14. dockerイメージを使用して手動でハイパーボーダーピアを起動する
- 15. Pub-SubのためにRedisを使用する手段
- 16. Word 2007 Vba - マクロを使用してプレースホルダに移動
- 17. PHPを使用してKnetを実装
- 18. コバール行列と手段のみを使用した重回帰
- 19. Swingコンポーネントを使用した描画の代替手段
- 20. フレックスリストでドラッグを手動で実装する
- 21. 手動でHTTP GETをPythonで実装する
- 22. Androidで手動でOAUTH2認証フローを実装する
- 23. Levenshtein distanceを使用してPythonで階層的クラスタリングを実装する
- 24. SpringのトークンストアをMySQLファイルとして実装する手順は?
- 25. jqueryを使用して動的に作成された段落を非表示にして表示する
- 26. A Vedaldiの実装を使用して
- 27. 動的/状態ベースのアロケータを使用するSTL実装ですか?
- 28. 非局所的手段の実装画像処理におけるノイズ低減アルゴリズム
- 29. 偽装を使用してC#で間接的にプロセスを起動する
- 30. テンプレートを使用して汎用フィルタを実装する
これは、ページがたくさんのブロックに分割されているため、ユーザーの操作中にコードの一部を更新できるようにするためには適していません。 –