2

我目前正在学习 Javascript 模板,我有一个信息丰富的问题​​。

使用来自服务器的 json 数据填充 javascript 模板有什么好处,而不是在服务器上收集 html 字符串(例如 PHP)并通过 jQuery Ajax 调用返回它?

由于这个模板是在客户端使用 Javascript 执行的,所以在服务器上创建模板会不会快很多(服务器比客户端更强大)?

做这个客户端的实际好处是什么?
我在学习如何使用 Backbone 开发 SPA 时遇到了这个问题,我想与 Marionette 一起使用并需要它。

谢谢。

4

1 回答 1

2

你说服务器比客户端更强大。是的,但是如果您有 1000 个请求该页面的客户?服务器变得很难,您尝试使用服务器端缓存、负载平衡等。所以客户端模板渲染允许每个客户端关心自己。它令人难以置信地减轻了服务器的负担。例如,您可以提供一次 HTML 模板和 JavaScript 代码,浏览器将缓存它。因此,服务器甚至不会在当前客户端的每个下一个请求中发送这些内容,而只确保实际数据提供和操作它,例如通过 REST 架构。通过这种方式,您主要只传输数据。Backbone 和其他客户端框架允许您卸载服务器。当每个客户端为自己呈现页面或页面的一部分时,它总是运行得更快。

客户端渲染的JSON响应 (REST) :

[
    {"name": "Jimmy", "email": "jimmy@gmail.com"},
    {"name:" "Billy", "email": "billy@gmail.com"}
]

服务器呈现的HTML响应(传统):

<table>
    <tr>
        <td>
            Jimmy
        </td>
        <td>
            jimmy@gmail.com
        </td>
    </tr>
    <tr>
        <td>
            Billy
        </td>
        <td>
            billy@gmail.com
        </td>
    </tr>
</table>

显然,如果您有 100 个用户要渲染,您将有更多的 HTML 可以在服务器端渲染并通过 HTTP(CPU、RAM、带宽)传输。

但是在客户端渲染的情况下,您只需要一个表格模板和一个(!)表格行的模板(例如)来循环渲染用户。

所以服务器只关心数据、认证和授权。应用程序是分布式的。您卸载服务器并允许浏览器完成所有非敏感工作。每个客户都关心自己。

于 2013-11-29T14:06:15.610 回答