首先,在前端模板(Handlebars,underscore 等等)已经如此成熟的今天,把数据拼成 HTML 字符串的方法应该已经没有什么人用了吧。
其次,大公司里都是有专职的前端工程师,经过跟后端工程师友(chang)好(nian)的(de)协(dou)商(zheng),最终确定的工作模式为后端工程师只负责处理数据、写好接口,前端工程师负责把数据渲染成 HTML。
关于你提到的通过 AJAX 获取 JSON 数据在前端渲染和后端渲染好 HTML 以字符串形式发送给前端的两种方式,我们一般不用后者。不过有人会质疑说如果整个应用都采用 AJAX 的话,用户第一次打开应用或者新页面时空空如也效果不好,这个问题我们通过埋点数据解决。具体方法是用户在请求某个页面时,后端把 AJAX 接口需要用到的数据写在返回的 HTML 中,如
<div class="some-section" data-json='序列化的JSON字符串'></div>
前端在 js 中获取 data-json 中的字符串进行渲染,生成最终用户看到的页面。注意这个过程中是没有用到 AJAX 的,数据在用户请求页面时一并就和 HTML 一起返回了,因此渲染的效果在非大型应用上和在后端渲染好的效果区别不大。
而后续再进行数据交换时,就统一使用 AJAX 操作了。
最后补充一点,题主提到后端渲染 HTML 的好处是方便修改,想必题主是搞后端的吧。对于前端工程师来说,修改前端的模板也很方便,而且在大公司里面,发布一次前端静态资源要比发布后端代码简单很多。因此单从方便性来说,这种方法看起来也不是那么方便。
一些简陋的想法,希望能有帮助。