哪种方法更快,更快:服务器端呈现与客户端呈现

Jac*_*ovi 10 mongodb node.js reactjs

我想知道的是,您如何构建您的Web应用程序?我真的很困惑,我应该将哪种方法用于我的项目.

已经决定选择哪种技术.

1)Node.js并表示为其框架

2)MongoDB

3)React + Flux

但问题是,我现在应该使用方法(A)还是方法(B)

方法(A) - HTML的Serverside呈现

app.get('/users/', function(request, respond) {
     var user = "Jack";
     respond.render("user", { user: user });
});
Run Code Online (Sandbox Code Playgroud)

方法(B) - HTML的客户端呈现

 app.get('/users/', function(request, respond){ 
       var user = "Jack";
       respond.json({ user: user });
    });
Run Code Online (Sandbox Code Playgroud)

方法A将从服务器和数据中呈现HTML.

方法B将仅响应客户端React.js所需的数据,以便它可以操纵数据.

我担心的是,我应该使用哪种方法?大多数创业公司使用哪种方法?

谢谢.

Dav*_*lsh 5

这不是一个或两个命题.

React是一个客户端框架.您必须在客户端进行渲染.问题是除了在客户端呈现之外,是否在服务器端呈现.

答案?如果可以,是的!

通过在服务器端渲染,您将获得SEO优势和初始性能提升.但是您仍然需要进行相同的客户端渲染.

我建议用谷歌搜索"同构反应"并做一些阅读.这是一篇关于这个主题的文章. http://www.smashingmagazine.com/2015/04/react-to-the-future-with-isomorphic-apps/


sch*_*kam 5

嗯,这实际上取决于您对现代网络的看法,以及您愿意做的事情.

您是否希望让用户等待,在异步加载数据时显示加载程序,或者您希望尽可能让用户保持忙碌状态?

以下是一些不同的文章,可以帮助您清除头脑,并了解通过执行服务器端呈现,客户端呈现具有多个问题可以获得的不同优势.

你可以在Twitter博客上看到这篇文章说他们通过将渲染移动到服务器来将他们的初始页面加载量提高了1/5到之前的状态:

https://blog.twitter.com/2012/improving-performance-on-twittercom

另一篇文章,来自airbnb,描述了客户端呈现本身可能遇到的问题:

http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/

还有另一篇有趣的文章讨论了客户端/服务器端呈现,引发了关于何时使用/不使用服务器端或客户端呈现以及原因的争论:

https://ponyfoo.com/articles/stop-breaking-the-web

最后,我可以给你两个更专注于反应的链接,并描述服务器端呈现应该对你的情况有帮助的方式:

https://www.terlici.com/2015/03/18/fast-react-loading-server-rendering.html

http://reactjsnews.com/isomorphic-javascript-with-react-node/

现在,关于你应该做什么,这是你需要做的事情,我认为,但基本上,你可以同时做(客户端和服务器端),以获得最佳的用户体验.

这个概念被称为"同构javascript",它现在越来越受欢迎.