我应该将原始数据或Html作为Ajax响应发送吗
Should I send raw data or Html as an Ajax response?
我有一个用Asp.net网络表单编写的网站。它大量使用ajax。
网站上的大多数表单都是用javascript提交的。Javascript验证输入并将其发送到服务器上的/ajax.ashx
。服务器处理请求并发回JSON响应。我的javascript使用JSON创建html,并将其插入到Dom中。
我正在制作一个使用asp.net MVC3编写的新版本的网站。我一直在看关于这个主题的教程,其中一些教程建议用不同的方式做ajax。他们不是发送数据,然后用javascript构建+插入html,而是在服务器上创建html,并只使用javascript将其插入Dom。例如,在本教程中。
我应该用哪种方式?使用新方法会更快,但它更好吗?
这是一个主观问题。这两种方法都是可能的,没有更好的方法。每种方法都有利弊。
与第一种方法相比,在服务器上构建HTML更容易,需要更少的精力,但消耗更多的带宽。
如果您决定采用第一种方法,可以使用一些客户端模板框架,这可能有助于简化客户端上DOM元素的生成。
直接在服务器中创建html代码并用ajax调用注入它是非常快速和简单的,真正的问题是,以这种方式,您的服务必然会与特定的应用程序一起使用。通过发送RAW数据,您可以允许任何应用程序以任何方式使用该数据,而无需将其绑定到特定的应用程序。
返回json对我来说更灵活;你可以改变json响应的内容,比如它产生的布局。如果你返回html,你会返回混合了布局的数据。我觉得这不对。
我认为最好将布局与实际数据分离。这就是为什么您应该在脚本之间传递数据,而不是HTML。如果你要发送HTML,考虑一下你必须构建有效的HTML和CSS,这一开始听起来可能不难,但随后你将开始使用未加载在调用ajax等文件中的CSS。
始终将内容(数据)与布局分开。这就是为什么有HTML和CSS,将布局与数据分离。那么,为什么要在数据之间混合HTML呢?
构建html服务器端可能会更快,而不会让客户端陷入困境,这一点很重要。用javascript将数据渲染到HTML中需要时间,并不是每个浏览器都能用js(即旧版本的IE)快速处理,所以如果你做了很多这样的工作,事情可能会变慢。
就像之前的海报所说的,这有点主观,因为这取决于你向客户卸载了多少。我认为,如果你能在服务器端做事,你就应该这样做。
如果您要使用此服务向其他应用程序/客户端返回JSON,那么最好将其保留为JSON,让客户端自己做它需要做的事情。
- 如何从php返回php变量值以及html响应ajax
- PHP:响应 AJAX 发布请求
- 从 php 响应 AJAX 的更好方法
- 如何将响应 ajax 发送到 html
- 处理服务器响应AJAX
- Twitter Bootstrap Rails按钮下拉列表没有响应AJAX
- 状态200 OK,相同的域,有效的JSON数据,没有响应(Ajax)
- 多个JSON数组作为响应-AJAX&PHP
- 稍后再响应AJAX请求
- Jquery的JSON响应.ajax四舍五入较大的数字,所以我不能得到正确的值
- 如何响应AJAX调用没有erb.js /为什么使用erb.js
- 是否有可能得到php echo/响应Ajax而不通过Ajax张贴
- 如何发送响应ajax到变量javascript
- Servlet不响应ajax请求
- 为什么嵌入的JavaScript在响应ajax调用时不执行?
- 多响应AJAX请求
- JAVASCRIPT:在本地主机上成功响应Ajax后重定向到主页
- Spring响应ajax: 403错误
- JSON响应AJAX格式错误
- 我如何发送压缩(gzip) JSON作为响应Ajax请求,从Java