0

「ビューのレンダリング」とは何かについて質問しました。いくつかの答えを得ました:

ビューのレンダリングとは、HTML パーツなどのビューをユーザーまたはブラウザーに表示することを意味します。

したがって、ビューをレンダリングすることにより、MVC フレームワークはコントローラーでデータを処理し、モデルでバックエンド作業を行ってから、そのデータをビューに送信してユーザーに出力します。

render は単に出力することを意味します。印刷する。反響する。何らかのソース (おそらく stdout) に書き込むため。

rendering a viewしかし、クラスを使用して、そのメソッドResponseを使用してユーザーに出力を送信することの違いを理解していません。出力をユーザーにエコーすることを意味するsendResponse()場合、なぜ存在し、その逆ですか? 正確にヘッダーを送信し、ヘッダーの後に本文を出力します。彼らは同じタスクを解決しますが、異なっていますか? 違いはなんですか?render a viewsendResponse()sendResponse()

4

2 に答える 2

3

ZF では、ビューをレンダリングしても実際にはコンテンツが出力されません。代わりに、レンダリング プロセスはコンテンツを文字列として呼び出し元に返します。 Zend_Applicationレンダリングされたビューを自動的に取得し、プレースホルダーを介してレイアウト (レイアウトを使用すると仮定) に挿入し、そのデータをZend_Controller_Response_Http最終的にユーザーにコンテンツを配信する責任を負うオブジェクトに配置します。Response オブジェクトを使用する理由は、HTML 出力をカプセル化し、送信する追加の HTTP ヘッダーまたはリダイレクトを管理できるようにするためです。

必要に応じて、データをクライアントに送信する前に、Response オブジェクトで応答の内容をさらに操作することもできます。

sendResponse()ヘッダー (HTTP 応答コードを含む) の送信を処理し、(ヘッダーを送信できないなどの理由で) 発生した可能性のある例外をチェックしてから、レイアウトとレンダリングされた 1 つ以上を含む HTML を送信します。スクリプトを表示します。

それが役立つことを願っています。

于 2012-06-27T21:13:10.943 に答える
2

それらは2つの非常に異なるものです。

ビューをレンダリングすると、データをテンプレート化できる別のレイヤーが提供されます。これにより、ロジックをプレゼンテーションから分離したまま、HTML/テンプレートを簡単に動的に設定できます。

データを直接エコーすると、このステップがスキップされ、通常、html 応答ではなく、json/xml (データ) 応答をユーザーに返すために予約されています。

話しているフレームワークを投稿しませんでしたが、どちらも応答ヘッダーを指定できるはずです。

単純化しすぎないでください。すべてのサーバーの目的はリソースをレンダリングすることですが、すべてが同じというわけではありません。

于 2012-06-27T20:09:24.437 に答える