a)进行Ajax调用,在服务器端生成标记(HTML),并将其作为响应返回,并使用客户端上的新内容操纵DOM.
b)进行Ajax调用,以JSON格式返回数据,客户端使用模板引擎和javascript来更新DOM.
我可以考虑以下考虑,您对这些替代方案有什么想法/经验?
1)语言:对于上述方法A,您可以在服务器端以任何您所选择的语言进行编程.方法B需要JavaScript.
2)服务器端实现的可重用性:JSON重新调用具有更多的可重用性,与返回HTML标记的调用相比较(如果在应用程序之外没有消费者,这并不是一个问题)
P,S:
1)这里有一个类似的问题 – Creating HTML: PHP server-side vs. jQuery client-side.在我的情况下,我建议使用客户端模板引擎,如tmpt,ejs.
2)在服务器端和客户端,我打算使用MVC模式.
解决方法
在ASP.NET MVC中,服务器端代码遵循组织中众所周知的约定,具有良好的调试器支持和工具集成.
相比之下,尽管有最佳做法,JavaScript代码组织通常基于个人开发者的意见.我倾向于使用Firebug进行JS调试.我没有发现VS调试器对于客户端来说好多了.两者都不符合调试服务器端.
考虑到这一点,我倾向于倾向于服务器端标记生成,但是当我需要时使用AJAX.无论何时在服务器和客户端之间分割视图操作,您都将引入复杂性并使其难以维护和调试.
至于为“可重用性”返回JSON,我会调用YAGNI.首先,返回标记意味着操作更为原子服务器端,而客户端AJAX来检索它更简单.第二,如果你真的需要JSON实现,这是一个容易的重构.
总而言之,我尝试使用经验法则,“一个新的”平均joe“开发人员需要多长时间了解并更改此代码?做这个时间更短的任何事情,从长远来看,可能是一件好事.