哪个应该生成HTML:JavaScript还是php?

快速提问,寻找一些建议。我有一个网站,它将从数据库中请求数据,并在表中显示给用户。我正在使用jQuery(AJAX),php和MySQL。

为表格生成HTML以显示数据的最佳位置在哪里:php应该生成它并从服务器发送整个东西(HTML +数据),还是php应该只发回数据,jQuery代码制作表格并插入数据?

尽管这是在 Intranet 上运行的,但我仍然更喜欢最快的方法。

更新:

我想向本主题添加一些其他信息,以防它对其他人有用。我完全同意这里提出的分离想法,并将其作为我的设计方法。我使用PHP将所需的数据检索并组织成JSON,然后使用jQuery生成HTML以显示返回的信息。在本例中,我使用 jQuery 创建了一个电子表格样式的表格表单,并填充了具有从 PHP 返回的值的“单元格”。有了几行和几列,事情运行良好,但是正如我所说,一个16 x 16的表,使用jQuery动态创建输入元素......

在这一点上,我再次遇到了IE6这个丑陋的幽灵。

IE6 仍然是我工作所在的经批准的浏览器,因此我的应用必须在其上运行。当我在Firefox和Opera上测试我的设计时,界面加载速度很快,使用起来很愉快。当我在IE6中运行相同的代码时,生成接口需要很长时间;足够长的时间,我的用户会再次开始点击内容,认为应用程序没有响应。我只能将其归结为IE6中的JavaScript引擎,因为代码在较新的浏览器中运行良好。因此,正因为如此,我又回到了对部分接口的重新设计,让PHP至少生成内部表表单元素,填充数据,然后将其发送回客户端。它打破了我想要的漂亮分离,但我在IE6中没有看到任何其他方法来加快客户端的速度。

无论如何,只是认为其他人可能对这里的结果感兴趣,对于像我这样的其他初学者来说,浏览器支持要求会在多大程度上影响设计选择。


答案 1

一个好的策略是使用“关注点分离”的方法,即使用客户端在GUI方面使事情变得漂亮。

另请注意,此策略与Web上的当前趋势非常一致,例如Google Web Toolkit(GWT)。


答案 2

在内联网带宽不是瓶颈,旧的笨重的IE JS引擎可能是,所以我会说发送生成的HTML(即使在更好的浏览器中,HTML片段的本机解析也应该比用JS构建DOM更快)。