Heim > Fragen und Antworten > Hauptteil
现在的提供数据服务的后台也是express的
目前准备开发一个前端,采用react+express的同构开发模式,服务端渲染页面
请问我这个前端的react+express和正在使用的express数据后台需要分离吗?
如果不需要,直接在现在的后台中+react构建前端,是否要前端工程师与后端工程师共同维护这个工程,会不会出现什么麻烦?
谢谢!!!
迷茫2017-04-17 14:50:40
1.服务端渲染就在你原来的后台渲染就好了,返回html的串给react前端,react前端负责展现
2.我觉得一般一个人维护就好了,即使两个人维护也没关系呢,co-work本来就是工作的一部分,别担心。
3.补充一点客户端渲染和服务端渲染的区别吧(client-side rendering vs server-side rendering)
Lantency
(延迟) 服务端渲染的话首次加载会很快,因为不需要像客户端渲染一样去请求js,css和data,然后组装展现出来,服务端渲染直接将html串给前端。但是在页面数据局部更新或者需要重新渲染子组件的时候,服务端渲染就会慢很多,因为你要发起网络请求,重新在服务端产生大部分或者全部的更新的html串,然后返回给客户端。但是客户端渲染的话,只需要局部重新更新即可。
SEO
(搜索引擎优化) 客户端渲染的页面对搜索引擎并不友好,搜索引擎通常只页面的html,不会去执行js的。客户端渲染的页面返回的时候只有一个html template而已,真正的内容是要执行了js去填充的,对搜索引擎并不友好,当然也有解决方案(PhantomJS
后面会备注PhantomJS的介绍和原因), 但是这样只会增加你程序的复杂性,不推荐采用。服务端渲染的话因为服务端已经产生了完整的html串,有利于搜索引擎的分析。
Browser Concept and Issues
(浏览器概念和问题) 服务端渲染保证了pages are documents
的定义,客户端通过URL请求页面document,你应该得到document的text,而不是一段程序然后再前端执行。还有浏览器兼容性的问题,客户端渲染给浏览器越多的操作,发生兼容性问题的可能就越大。
注:PhantomJS
介绍
PhantomJS
是一个无头浏览器
PhantomJS
可以解决客户端渲染对搜索引擎不友好的问题,它可以在数据返回给客户端之前,对HTML/JavaScript/CSS
进行预渲染, 这意味着页面被加载的时候,所有初始化的js都被执行了.
既然可以解决客户端渲染对搜索引擎不友好的问题,那为什么不用呢?
主要原因:
如果你为每一个请求,都启动一个PhantomJS
实例,那如果搜索引擎同时爬取多个页面,那你机器的性能会受到影响;
PhantomJS
运行的是老版本的js;
调试困难;
说白了就是引入的成本太大,不值得!!!!