[ZF-10089] Zend_Log
[zend.git] / documentation / manual / zh / module_specs / Zend_Controller-ActionHelpers-Json.xml
blob89a804fd586e4f49a8a58951e8979663dd844652
1 <sect3 id="zend.controller.actionhelpers.json">
2     <title>JSON</title>
4     <para>
5         当处理期望数据表响应的 AJAX 请求,JSON 响应迅速变成选择的响应。JSON 可以立即在客户端被解析,从而快速执行。
6     </para>
8     <para>
9         JSON 动作助手完成以下任务:
10     </para>
12     <itemizedlist>
13         <listitem><para>
14                 如果布局是打开(enabled)的,则关闭(disable)它。
15         </para></listitem>
17         <listitem><para>
18                 如果视图解析器(ViewRenderer)是打开的,则关闭它。
19         </para></listitem>
21         <listitem><para>
22                 设置 'Content-Type' 响应头为 'application/json'。
23         </para></listitem>
25         <listitem><para>
26                 缺省地,不需要等待动作执行完成,立即返回响应。
27         </para></listitem>
28     </itemizedlist>
30     <para>
31         用法很简单:或者把它作为助手代理的方法来调用,或者调用 <code>encodeJson()</code> 和 <code>sendJson()</code> 方法的其中之一:
32     </para>
34     <programlisting role="php"><![CDATA[
35 class FooController extends Zend_Controller_Action
37     public function barAction()
38     {
39         // do some processing...
40         // Send the JSON response:
41         $this->_helper->json($data);
43         // or...
44         $this->_helper->json->sendJson($data);
46         // or retrieve the json:
47         $json = $this->_helper->json->encodeJson($data);
48     }
50 ]]>
51     </programlisting>
53     <note>
54         <title> 保持布局 (Keeping Layouts)</title>
56         <para>
57             如果你为 JSON 响应有分离的布局 - 也许把 JSON 封装到一些上下文 - 在 JSON 助手的每个方法接受第二个可选的参数:打开或关闭布局的 flag ,传递一个布尔 <code>true</code> 值将使布局保持打开:
58         </para>
60         <programlisting role="php"><![CDATA[
61 class FooController extends Zend_Controller_Action
63     public function barAction()
64     {
65         // Retrieve the json, keeping layouts:
66         $json = $this->_helper->json->encodeJson($data, true);
67     }
69 ]]>
70         </programlisting>
71     </note>
72 </sect3>
73 <!--
74 vim:se ts=4 sw=4 et:
75 -->