Kohana框架-Ajax实施最佳实践
我正在 Kohana 框架中开发一个应用程序。我想知道在 kohana 中实现 ajax 的最佳实践。到目前为止,我正在使用不同的 ajax 控制器。我认为重要的问题是最大限度地减少资源需求和处理会话。
提前致谢
I am developing an application in Kohana framework. I would like to know the best practices in implementing ajax in kohana. So far I am using different controller for ajax. I think the important concerns will be minimizing the resources requirement and handling sessions.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我正在使用这个:
在Controller_Template中:
在我的操作中:
I'm using this:
In Controller_Template:
And inside my actions:
正如上面的人所说,您的 ajax 操作不需要单独的控制器。您可以利用 Kohana 的请求对象来识别请求类型。这可以通过以下方式完成:
虽然该示例非常简单,但可以将其改进为您想要归档的内容。基本上我已经完成了编写自己的
Controller_Template
来完成我需要的事情。此外,您还可以考虑将 format 参数添加到您的 url 中,以便.html
url 返回数据的常规 html 表示,而.json
url 执行相同的操作,但采用 json格式。有关更多信息(以及可能的想法),请参阅 kerkness 非官方 Kohana wiki
As the fellas above said, you don't need a separate controller for your ajax actions. You may take advantage of Kohana's request object to identify the request type. This may be done in the following way:
Though the example is very simple it may be improved to what you want to archive. Basically I've finished up writing my own
Controller_Template
to do the stuff I need. Also you may consider adding the format parameter to your urls so that the.html
urls returned the regular html representation of the data and.json
urls did the same, but in json format.For more information (and probably ideas) see kerkness unofficial Kohana wiki
您实际上并不需要单独的控制器,您也可以使用 Kohana_Controller_Template 来处理 AJAX 请求。
由您决定 AJAX 请求(或子请求,通常是相同的)时的响应是什么。我通常只有在请求是第一个请求(而不是ajax)的情况下才实际渲染模板,否则渲染它是 $content var。
此外,您还可以轻松检查请求是否是 AJAX/子请求:
You don't really need a separate controller, you can use Kohana_Controller_Template for handling AJAX requests as well.
It's up to you to decide what will the response be in case of AJAX request (or subrequest, it's usually the same). I usually have the template actually rendered only in case of request being the initial one (and not-ajax), rendering it's $content var otherwise.
Also, you can easily check if a request is AJAX / subrequest:
另外,如果使用 Kohana_Controller_Template 作为控制器父级/祖先,最好记住在通过 AJAX 访问时禁用自动渲染,以防止加载和渲染整个模板。
Also, if using Kohana_Controller_Template as your controller parent/ancestor it is good to remember to disable auto-rendering when accessing via AJAX, to prevent loading and rendering whole template.