Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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
Php 如何在一个AJAX应用程序中处理大量HTML数据?_Php_Javascript_Ajax - Fatal编程技术网

Php 如何在一个AJAX应用程序中处理大量HTML数据?

Php 如何在一个AJAX应用程序中处理大量HTML数据?,php,javascript,ajax,Php,Javascript,Ajax,我应该让服务器返回JSON数据,然后让JavaScript解析它以直接创建/呈现HTML,还是让服务器端代码直接返回HTML(可以由JavaScript直接放置) 想法?呈现代码服务器端(例如,在Rails的AJAX中完成),然后将视图返回到将要放置的客户端。 然后分析你的代码。如果速度太慢,请返回JSON并考虑一种在客户端呈现它的方法 您的首要任务应该是不要将整个过程过于复杂化。我不喜欢返回生成的HTML。我希望返回JSON并使用类似的方法来处理渲染。让客户机资源处理这项工作 (旁注:JQOT

我应该让服务器返回JSON数据,然后让JavaScript解析它以直接创建/呈现HTML,还是让服务器端代码直接返回HTML(可以由JavaScript直接放置)


想法?

呈现代码服务器端(例如,在Rails的AJAX中完成),然后将视图返回到将要放置的客户端。
然后分析你的代码。如果速度太慢,请返回JSON并考虑一种在客户端呈现它的方法


您的首要任务应该是不要将整个过程过于复杂化。

我不喜欢返回生成的HTML。我希望返回JSON并使用类似的方法来处理渲染。让客户机资源处理这项工作


(旁注:JQOTE是一个神奇的工具!)

过早优化是万恶之源。从容易的开始。如果速度太慢,找到一种优化的方法(也许可以使用另一种方法)

如果其中一个对您来说并不比另一个容易,那么就使用服务器端。我无法想象服务器端脚本语言操作会比浏览器中的javascript慢


如果您所要做的就是呈现HTML,那么直接使用服务器(php)可能会容易得多。否则,您必须先使用php将其转换为JSON,然后再使用JS将其转换回。这至少是javascript方面的一个额外步骤和额外工作。

我认为,如果您以后不需要这些数据,例如用于过滤、动态搜索等,那么您应该返回HTML。

我将投票支持您提出的第一种方法

JSON序列化的数据大小小于(X)HTML大小,第一种方法可以节省大量CPU周期、网络流量、内存,并加快客户端速度,最终实现响应性用户界面


只需以JSON格式发送数据,并在客户端用JavaScript解析数据,这样服务器上的事情会更简单,呈现的事情将委托给客户端web浏览器。

这取决于您试图实现的目标。如果您正在编写移动应用程序,您可能希望节省带宽并使用客户端模板(例如:)。如果bandwith对您不那么重要,我只会使用服务器端模板来生成所需的HTML。

在我看来,这一切都与响应能力有关。您的服务器总是能够比UA更快地处理数据,但是两者之间的差异可以忽略不计。如果是这样的话,那么我建议将JSON传递给UA,然后使用客户端代码来完成这些肮脏的工作。这样,服务器和客户机之间的关注点将得到明确的分离,允许您将来将JSON数据交付到不同的客户机端点,而无需修改服务器端代码


但是,如果在客户端进行数据处理会对性能造成重大影响,那么直接向客户端交付HTML可能更有意义但是我强烈建议您仍然只向服务器端HTML创建功能(而不是UA)交付JSON,这样您仍然可以向多个端点交付JSON数据,而不必在将来更改核心代码。

没有一个正确的答案;这取决于你的期望

如果您希望应用程序可访问(即,由屏幕阅读器处理)、由搜索引擎机器人拾取或希望用户界面在请求和用户之间可缓存,则必须使用服务器生成的HTML,而无需动态加载。如果对生成的HTML使用缓存,则无需不断地重新渲染,就可以获得很多好处。服务器端工具比客户端工具多,但随着JS的发展,这一点越来越不靠谱


OTOH,生成由客户端使用一些JS库呈现的JSON确实可以帮助您的服务器减少负载。您正在将渲染工作分发给客户端,但这确实会使您失去控制权。如果你有一个重JS的解决方案,而客户端无法处理JS(屏幕阅读器、搜索引擎机器人等),那么网站应该优雅地降级,或者期望有一些观众无法查看它。观众对你来说可能微不足道,但这是需要知道的。只要您管理好渲染(设置区域的最小大小、等待图标等),那么您就可以进行与服务器端一样平滑的客户端渲染(在比较视觉渲染步骤时)。生成JSOn还为您提供了更大的灵活性,因为定义了更多的接口,或者其他非UI客户端变得更重要。

如果您提供了一些指标,或许还提供了一个返回/呈现数据的示例,我想我们可以帮助您得出更好的结论。为什么您不喜欢返回生成的HTML?我就是不喜欢。有太多的事情让人觉得。。。只是因为缺少更好的词语而不合适。现在必须在服务器端进行表示更改,从而重新编译项目。如果您想通过API公开功能,该怎么办?现在,您已经创建了一套完整的单独功能来返回一些可消费的东西,如JSON或XML。我不希望我的设计人员必须通过挖掘服务器代码来修复跨浏览器问题或打字错误,这意味着任务不能得到正确的委派。对于每个项目,我都支持许多不同于我所希望的项目。为什么创建AJAX XML的方法不同于创建初始XML(通常用户必须访问页面才能启动AJAX请求)。你是说你希望所有的服务器端脚本都打印JSON,每次javascript都会对其进行解析并将其转换成HTML?您的web程序员是否如此无能以至于无法打印HTML,而您需要web设计师从JSON解析它?如果需要一个没有javascript的页面怎么办?问题是在AJAX请求返回HT的上下文中