Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该发送原始数据还是Html作为Ajax响应?_Javascript_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 我应该发送原始数据还是Html作为Ajax响应?

Javascript 我应该发送原始数据还是Html作为Ajax响应?,javascript,ajax,asp.net-mvc,Javascript,Ajax,Asp.net Mvc,我有一个用Asp.net webforms编写的网站。它大量使用ajax 网站上的大多数表单都是用javascript提交的。Javascript验证输入并将其发送到服务器上的/ajax.ashx。服务器处理请求并发回JSON响应。我的javascript使用JSON创建html,并将其插入Dom 我正在制作一个使用asp.net MVC3编写的网站的新版本。我一直在看关于这个主题的教程,其中一些教程建议以不同的方式使用ajax。他们不是发送数据,然后用javascript构建并插入html,而

我有一个用Asp.net webforms编写的网站。它大量使用ajax

网站上的大多数表单都是用javascript提交的。Javascript验证输入并将其发送到服务器上的
/ajax.ashx
。服务器处理请求并发回JSON响应。我的javascript使用JSON创建html,并将其插入Dom

我正在制作一个使用asp.net MVC3编写的网站的新版本。我一直在看关于这个主题的教程,其中一些教程建议以不同的方式使用ajax。他们不是发送数据,然后用javascript构建并插入html,而是在服务器上创建html,只使用javascript将其插入Dom。例如,在


我应该用哪种方式?使用新方法会更快,但更好吗?

这是一个主观问题。这两种方法都是可能的,没有更好的方法。每种方法都有利弊

与第一种方法相比,在服务器上构建HTML更容易,需要的工作量更少,但占用的带宽更多


如果您决定采用第一种方法,您可以使用一些客户端模板框架,这可能有助于简化客户端上DOM元素的生成。

直接在服务器中创建html代码并使用ajax调用将其注入非常快速和简单,真正的问题是,通过这种方式,您的服务必然会与特定的应用程序一起使用。通过发送原始数据,您可以允许任何应用程序以任何方式使用该数据,而无需将其绑定到特定的应用程序。

返回json对我来说更灵活;您可以更改json响应的结果,比如它产生的布局。如果返回html,则返回与布局混合的数据。我觉得这不对。

我认为最好将布局与实际数据分开。这就是为什么您应该在脚本之间传递数据,而不是在HTML之间传递数据。 如果你想发送HTML,考虑一下你必须建立一个有效的HTML和CSS,这听起来可能并不难,但是你将开始使用在文件中没有加载的CSS调用Ajax等等。
始终将内容(数据)与布局分开。这就是为什么有HTML和CSS,将布局和数据分开。那么,为什么要在数据之间混合HTML来搞乱事情呢?

构建HTML服务器端可能会更快,而且不会让客户端陷入困境,这一点很重要。使用javascript将数据呈现为HTML需要时间,而且并非每个浏览器都使用js(即IE的旧版本)很快,因此如果您经常这样做,事情可能会变慢

就像之前的海报上说的,这有点主观,因为这取决于你向客户卸下了多少。我认为如果你能在服务器端做事,你就应该这样做


如果您打算使用此服务将JSON返回给其他应用程序/客户机,那么最好将其保留为JSON,让客户机做自己需要的事情。

您可以通过一个表示发送一些带宽。。。“但是我想这不值得太担心。”EstebanAraya,一切都将取决于具体的情况和人们试图解决的问题类型。