在MVC中,让客户端JavaScript处理视图组件是一个好主意吗?

在MVC中,让客户端JavaScript处理视图组件是一个好主意吗?,javascript,model-view-controller,web,Javascript,Model View Controller,Web,在MVC web应用程序(PHP或ASP.net等)中,将数据放入隐藏的div中的json/csv,并让客户端js处理表示,这是一个好主意吗 例如,如果您想要呈现一个表,而不是在服务器端(PHP或C#等)将查询结果转换为HTML表,您可以简单地将查询结果转换为json字符串,并将其放入一个div中,显示为:none。然后,使用客户端JavaScript读取json数据,并将其显示为HTML表或任何您想要的内容 这样做的好处是,在为后端编程时,您可以完全忘记数据的表示方式。当您更改型号/控制器代码

在MVC web应用程序(PHP或ASP.net等)中,将数据放入隐藏的div中的json/csv,并让客户端js处理表示,这是一个好主意吗

例如,如果您想要呈现一个表,而不是在服务器端(PHP或C#等)将查询结果转换为HTML表,您可以简单地将查询结果转换为json字符串,并将其放入一个div中,显示为:none。然后,使用客户端JavaScript读取json数据,并将其显示为HTML表或任何您想要的内容

这样做的好处是,在为后端编程时,您可以完全忘记数据的表示方式。当您更改型号/控制器代码时,无需不断修改视图代码,反之亦然

一个缺点是搜索引擎优化可能存在风险


还有其他的优点或缺点吗

表格数据的缺点

-它会导致“内存泄漏”和很大的下载量

假设一个数组中有100000个对象。它只有50MB。每个页面加载用户下载此数据。这对用户来说是不好的

-它是静态的。只有当用户刷新页面时,它才会是动态的

在动态网站中,数据总是变化的。用户希望遵循它

该做什么

与AngularJs、VueJs和ReactJs一样,ReactJs使用作用域在javascript中保存数据。但数据必须简单(不像10万长度的数组)


如果您使用的是表格,您可以使用页面大小和页面计数结构。

请不要投票赞成关闭,上帝。如果你真的想,请先留下建设性的评论。上帝求你了,哦。你在不知情的情况下在这里捣乱。这实际上是前面(最后)的一个主要讨论。您应该在客户端还是在服务器上渲染?还是两者兼而有之?不过,目前还没有普遍接受的“一刀切”解决方案。这主要取决于您的用例。一些应用程序使用单页应用程序开发风格会变得更好,但大多数应用程序都应该在服务器上呈现,原因有很多。(为了记录在案,我没有投票关闭。)在我个人的泡沫中,这有一些很好的讨论。客户端渲染通常在React、Angular或VueJS等框架的上下文中完成。谢谢。我不知道用“render”作为谷歌搜索这个问题的关键词。是的,当你通常使用
print
echo
或类似工具时,这个词实际上有点让人惊讶。“渲染”更常用于图形。不过,由于我觉得有点模糊的原因,这场讨论最终还是解决了。我不会把整个50MB阵列都吐给客户端。2.即使我进行服务器端渲染,用户也需要刷新页面。