1
seakingii 2022-03-26 11:23:19 +08:00 1
如果光是”模板“这个很简单,你自己写个代码例子测试一下不就清楚了。
实际上问题会更复杂,比如你要根据模板生成,你的数据来源要快,假如你数据库放国内,生成服务器放国外,那就慢的不得了(实际上可能不会这么极端),那样的话,先在本地生成所有的 HTML 再上传会更好。 还有就是服务器的 CPU 性能,内存性能等。如果是垃圾服务器,那也是先生成 HTML 比较好。 如果数据来源够快,我是建议用 模板生成,那样单个即时生成所费的时间很小,毫秒级别。再加上各种缓存(缓存在磁盘上,REDIS 中,CDN 中),能大大缓存生成压力。模板即时生成的最大好处就是可以随时修改样式模板,随后再次访问就是新的样式了。也不用随便小修改就要重新生成一次所有页面,那可能会费很多时间。 |
2
xiaoyiyu 2022-03-26 11:39:49 +08:00 via iPhone 1
|
3
pca7a2 2022-03-26 14:35:26 +08:00
建议还是前后端分离,适合分工。
|
4
Jooooooooo 2022-03-26 15:01:24 +08:00
这...到了考虑这种东西的性能问题的时候吗.
数据库稍微设计合理点性能提升估计要比这个大一万倍. |
5
keepeye 2022-03-26 15:09:14 +08:00 1
性能测试可以参考 2 楼,再说静态文件,如果服务器磁盘垃圾 html 还真不一定有 go 模板渲染快,别忽略了磁盘 io 瓶颈,不建议生成 html ,go 没那么慢,等你遇到瓶颈了花钱加服务器都是开心的
|
6
Goat121 2022-03-26 15:15:13 +08:00
你问的实际上不是 template 包的问题,是采用服务端渲染或前端渲染的问题。
对于服务端来说,返回 json 还是 html 性能差距微乎其微。 前端渲染的性能,视客户端环境和执行的 js 代码可能会慢上数秒,但现代浏览器都会预编译 js 并缓存,实际上只会在你第一次打开网页时有影响。 采用服务端渲染一般都是为了做 seo ,但会极大增加代码耦合度。某些大厂的做法是再加一层,服务端返回 json 到中间层渲染为 html ,再返回给客户端。除了工作量大增之外,啥都好。 看你用户量和开发人员具体做技术选型把 |
9
buliugu 2022-03-26 15:25:06 +08:00
其实生成静态 html 直接走 cdn 分发也是一种方案,广告部分走动态请求就行,可以大幅减少主站的流量压力
|
10
seakingii 2022-03-26 15:26:20 +08:00
楼主的这个问题我以前也经历过。
两种做法各有各的好处,静态的最大好处在于,你任意一个 WEB 服务器都可以部署,甚至可以用 GITHUB 部署。。。 如果用即时模板,坏处是要运行可执行程序,好处是可以再加一些动态功能,比如 搜索啥的。。 |
11
WispZhan 2022-03-26 15:29:03 +08:00
参考 hugo ?
|
12
wonderfulcxm 2022-03-26 17:02:01 +08:00 via iPhone
小说网站,如果小说数量大的话,并且一个页面跟另一个页面有关联,列表分页,tag 页,主页等等。修改一次,整站重新生成一次得几百万上千万个页面。
hugo 那种只适合个人博客这种小玩意 |
13
veightz 2022-03-31 13:09:57 +08:00
我觉得可以看业务的场景.. 看读写比例, 高频写的话, 是不是会经常构建, 导致代价较大?
|