我想这是一种常见的情况:
您有一个页面中的项目列表,对于(一个简单的)示例:
<ul class="items">
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
存在一个按钮,允许您通过AJAX加载另外3个项目 - “简单”的方法是返回3个新项目的HTML,然后将它们注入DOM。
但是,如果我们希望对这些数据进行一些客户端操作,那么我们必须解析返回的HTML,操作数据然后重新模板化,然后注入DOM。
我想,对于不太简单的应用程序,服务器将返回JSON格式的数据,准备进行操作然后进行模板化。但是,您现在拥有冗余,您的“模板”既存在于服务器端,也存在于客户端逻辑中。此外,如果你使用像Backbone这样的东西来处理视图/模型,或者使用Mustache或其他东西进行模板化,那就变得更加复杂了。
我们如何处理这种冗余?服务器也返回模板吗?
答案 0 :(得分:1)
我倾向于在服务器上保留所有数据处理和渲染,不仅仅是因为冗余,而是分离关注点。如果你想要针对不同的数据或不同的模板进行渲染,那么发送一个修改后的请求,该请求返回可以直接插入的HTML,而不必使用它。
答案 1 :(得分:0)
一种方法,可能是生成js dinamically(在服务器端):生成包含格式化为json的前3个元素的var,然后调用在加载时添加li
的函数。
这样,您将避免冗余并创建客户端操作。