0

我问过一个关于什么是“渲染视图”的问题。得到了一些答案:

渲染视图意味着向用户或浏览器显示视图,例如 html 部分。

因此,通过渲染视图,MVC 框架已经处理了控制器中的数据并在模型中完成了后端工作,然后将这些数据发送到视图以输出给用户。

渲染只是意味着发射。打印。回响。写入某个源(可能是标准输出)。

但不明白然后rendering a view使用Response类将输出发送给用户使用其sendResponse()方法之间的区别。如果render a view意味着将输出回显给用户,那么为什么sendResponse()存在,反之亦然?sendResponse()完全发送标题,然后在标题输出正文。他们解决相同的任务但不同?有什么不同?

4

2 回答 2

3

在 ZF 中,渲染视图实际上并不输出任何内容。相反,呈现过程将内容作为字符串返回给调用者。 Zend_Application自动处理渲染视图并通过占位符将其插入布局(假设您使用布局),并将该数据放入Zend_Controller_Response_Http最终负责将内容交付给用户的对象中。使用 Response 对象的原因是它可以封装您的 HTML 输出,还可以管理您要发送的任何其他 HTTP 标头或重定向。

如果您愿意,您还可以在将数据发送到客户端之前进一步操作 Response 对象中的响应内容。

sendResponse()负责发送任何标头(包括 HTTP 响应代码),检查可能发生的任何异常(由于无法发送标头或其他原因),然后发送可能包含您的布局和一个或多个呈现的 HTML查看脚本。

希望有帮助。

于 2012-06-27T21:13:10.943 回答
2

它们是两个非常不同的东西。

渲染视图提供了另一个层,您可以在其中模板化您的数据。这将允许您轻松地动态填充 HTML/模板,保持逻辑与表示分离。

回显数据直接跳过此步骤,并且通常保留用于将 json/xml(数据)响应重新发送给用户,而不是 html 响应。

您没有发布您正在谈论的框架,但两者都应该允许您指定响应标头。

请不要过于简单化。每个服务器的目的都是渲染资源,但这并不意味着它们都是一样的。

于 2012-06-27T20:09:24.437 回答