next.js 对于大量页面的性能真的很差吗,比如打包很慢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MRlaopeng
V2EX    Next.js

next.js 对于大量页面的性能真的很差吗,比如打包很慢?

  •  
  •   MRlaopeng 22 小时 52 分钟前 603 次点击

    现在有一个 100w 页面 html 的需求 我之前在想用 hugo 做的, 但是 AI 却和我说, hugo 在每次修改之后都需要进行全量生成全部网页,这样的对于工程化不友好 然后我就想别的方法, 看到主流做 seo 的方案都是 next.js 他对于大量网页的情况会存在哪些性能问题呢?

    imingyu
        1
    imingyu  
       22 小时 46 分钟前
    好奇你的 100 万个页面都是啥
    gotoschool
        2
    gotoschool  
       22 小时 44 分钟前
    不算慢啊
    我在用 还行啊
    MRlaopeng
        3
    MRlaopeng  
    OP
       22 小时 34 分钟前
    @imingyu 假设下,,因为我在技术选型的时候喜欢,小小的设置一个极限情况
    MRlaopeng
        4
    MRlaopeng  
    OP
       22 小时 33 分钟前
    @gotoschool 好的 感谢回复, 我去找一下有没有什么现成的二开项目
    hugozach
        5
    hugozach  
       22 小时 26 分钟前
    啥玩意 100w 啊 首先 100w 就不合理
    量级大起来处理肯定费劲 用啥都费劲 如果有个前端项目打包 1pb 你别说打包了 电脑打开都是问题
    94
        6
    94  
       20 小时 11 分钟前
    有一个评测项目,可以直接参考,但是已经很长时间没有维护更新了。
    [seancdavis/ssg-build-performance-tests - Github]( https://github.com/seancdavis/ssg-build-performance-tests)

    而且不管是 Hugo NextJs 还是其他的带有 SSG 能力的框架,基本上都是可以配置 cache 来加快构建速度的,或者增强成增量更新。

    -----

    但其实没有必要关注这些构建时的性能,除非是真的有非常大量的页面需要生成,比如说一些内网使用的开发文档。
    大部分情况下我们都会托管在服务器上,通过 CI/CD 能力让服务器自动执行构建脚本,比如说 Github 上面的 Actions ,并不太会关注到底会执行多久,只需要关注自己是否提交就行了。
    gucheen
        7
    gucheen  
       20 小时 9 分钟前
    你觉得 hugo 能应付 100 万页面?
    你是不是误解了 100 万动态页面和 100 万静态页面?
    weixind
        8
    weixind  
       20 小时 5 分钟前
    @MRlaopeng #3

    个人想法:技术选型是选择最适合的技术栈,要贴近需求。不是哪个性能最好就选哪个。
    MRlaopeng
        9
    MRlaopeng  
    OP
       19 小时 59 分钟前
    @gucheen ai 和我说, 如果用 hugo 那就是完全生成 100w 个 html, 那确实太麻烦了
    但是如果用 next.js 是不是可以就类似于动态路由那样 动态生成呢
    MRlaopeng
        10
    MRlaopeng  
    OP
       19 小时 59 分钟前
    @weixind emm, 那就是选择当前最火的 next.js 了?
    gucheen
        11
    gucheen  
       19 小时 47 分钟前
    @MRlaopeng 我觉得你可能都没搞懂你的需求或者说你没搞懂你要做什么
    建议先理清需求再做技术选型
    另外我觉得你对你要用的技术也不够理解,这种情况做技术选型基本都是无用功
    MRlaopeng
        12
    MRlaopeng  
    OP
       19 小时 42 分钟前
    @gucheen 老哥你这句话有点绕,,,我现在就是在 100w 个页面用来做 seo 的背景下,需要选一个好用的技术
    94
        13
    94  
       17 小时 29 分钟前
    @MRlaopeng #12 ,我觉得你这个 100W 个页面的出发点就很奇怪。你先要确定你这个项目是要干什么,然后让大家来给你推荐推荐。你再从我们推荐的技术栈里面选你符合心意的。
    而不是说我现在要性能最好的那一个,你们说我现在选择的这两个里面哪一个性能好,但是不提你这个性能的需求场景。是展示型的企业站,文档站,还是自己写博客,即使说拿来做内容农场都行。

    -----
    如果有人说 Hugo 性能强 1000w 个页面渲染手拿把掐,然后你真信了,拿去开发管理后台不就瞎了吗……
    MRlaopeng
        14
    MRlaopeng  
    OP
       14 小时 23 分钟前
    @94 哦哦 原来是这样, 老哥你这样说我就理解了
    94
        15
    94  
       1 小时 58 分钟前
    @MRlaopeng #14 ,所以就看你要做什么项目,但是会考虑到 hugo 估计就是企业官网和博客这两种类型。
    那么其实选一个自己喜欢的就好了。大部分还在更新的带 SSG 能力的框架都支持了<增量更新>,或者有 plugin 可以增强成增量更新。

    但其实很多情况下并不是因为不能增量更新的问题,而是因为 SSG 框架会渲染的静态 HTML 文件,如果侧边小组件里面展示到了一些最新文章和词云排名这样每次更新会变更的内容,不是通过 API 调用返回的。就不可避免地会需要重新生成新的 HTML 内容, 因为最新文章虽然没有变更,但是小组件里面的内容确实已经变更了。
    MRlaopeng
        16
    MRlaopeng  
    OP
       56 分钟前
    @94 好的,谢谢大佬, 这个小组件的问题确实让我纠结, 看到你说 不可避免地会需要重新生成新的 HTML 内容 , 那我就还是选择先用 hugo 做一版本试试看
    94
        17
    94  
       34 分钟前
    @MRlaopeng #16 ,但 NextJS 之类的框架可以做到部分动态,这样就不会每次都需要重新生成新的 HTML 缓存,只需要确定哪一些部分是客户端渲染就行了。
    但是 Hugo 就没有提供这个能力了得你自己去做。只是 Next 需要在服务端启服务,Hugo 就不需要了只需要静态页托管就行。SSG 和 SSR 在这部分的差异就体现出来了。

    所以你自己得心里有预期,你到底是要准备做什么样子的项目,以后怎么部署和运维。
    MRlaopeng
        18
    MRlaopeng  
    OP
       22 分钟前
    @94 好的, 感谢大佬
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5909 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:17 PVG 10:17 LAX 18:17 JFK 21:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86