V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lazyczx  ›  全部回复第 2 页 / 共 2 页
回复总数  28
1  2  
2024-03-30 16:15:31 +08:00
回复了 lazyczx 创建的主题 程序员 关于 Next.js 最新的特性, Partial Pre-Rendering 和 SSR 之间的问题
@shizhibuyu2023
noStore 都注释了的话,就变成 static 页面了,static 页面确实永远都不会出现这个问题,这一点我在本地测试了。

但是我感觉我碰到的这个表现,这个和时间有关就很扯哈哈,就有的时候刚点进去,navigation 切了几下,就不会调接口了。然后等了一段时间,就算在 home 狂点那个 home 也会一直调接口,但是刚刚进去页面的时候不会这样。你点过我部署的那个页面了吗?你不会遇到这个问题吗?就进去之后先在 home 和 invoices 之前切几下,可以看到切几下之后不管怎么切,network 都没有新的请求了,然后等个一分多钟,再去点 home ,每点一下,就出来一个新请求,这是在动态页面的情况下。主要是和时间有关,太奇怪了。
2024-03-30 16:07:11 +08:00
回复了 lazyczx 创建的主题 程序员 关于 Next.js 最新的特性, Partial Pre-Rendering 和 SSR 之间的问题
@epiloguess 太感谢了,你是我的神!!!

抱歉看到之后过了很久才回复,因为我一边看你的回复,一边自己实验了相当一段时间!

1. 那个 cache 真的很强大,被 cache 包裹的 api 方法调用就像是被锁到了另外一个空间,同页面的别的组件都不会影响到它,引起它的的 revalidation 。我看到一个 noStore() 标注的方法执行的时候,别的 API 方法也跟着被调用,但是作为 cache fallback 的方法不被调用。我觉得这个就是 ppr 了对吗? canary 的支持只不过让这个实现更加简单了一点而已:不需要 cache 方法包裹,而是没有使用 noStore 就默认为 cache 。

2. 如果调用了 noStore 的方法没有 cache 作为 fallback ,而是直接调用了的话,会导致整个 page 直接变成 dynamic 的,此时就算别的 api 调用没有调用 noStore ,也会每次刷新都自动调方法。如果所有方法都没有“有效的” noStore ,则在 start 启动的时候直接变成 static 页面,而在 dev 的时候,方法会调用,但是请求出不去,整个方法的执行都在毫秒级完成。

3. 我说的那个一直点,一直调请求的,还是会时不时复现,有段时间我一直没有成功复现,然后我同时打开了 local 的页面和 vercel 上托管的页面,立马就出现这个问题了,我甚至都怀疑是不是它们两个之间互相有什么影响,但是我不知道是什么原因,照理说域名都不一样,怎么会有互相影响呢。。但是我发现,如果页面是 static 的,肯定就不会有问题。但是我猜大概从表现的危害上来说也可以接受吧,毕竟页面都是 dynamic 的,让它每点一下就调一次又怎么样了呢,但是原因还是不清楚。。关于这个,我想到个问题,如果页面是 dynamic 的话,是不是最好把后端接口调用放在客户端(如果没有保密需求的话),换言之前端服务器做这种 proxying (不包括缓存)的事情,对前端服务器压力大吗?因为我想如果是 user 之间不共享的数据,那每个 user 都要从你前端服务器 proxy 出去,应该有很大的吞吐量,框架要处理这些,会不会在上面浪费很多性能。

4. 关于第 5 点,我不知道你是怎么测试的,但是我测试的情况下,如果 API 方法里使用了 noStore ,然后把这个方法作为 cache 的 fallback 的话,确实不会退出静态生成。build 的时候显示的 tree 也显示页面仍然是 static ,如果不用 cache 的话,tree 马上变为动态 λ 的了。我感觉正式版里只要用 cache 了,noStore 就跟没有调用一样,好像 cache 这个缓存,会直接接管这整个方法调用的结果,然后选择是否缓存。

再次感谢大佬,very informative answer ,让我学到很多。

其实好久没写前端了,你说起 build start 的时候,我猛然想起,以前做前端项目的时候都是每次改代码,每次 build start 的哈哈。
2024-03-29 23:59:43 +08:00
回复了 lazyczx 创建的主题 程序员 关于 Next.js 最新的特性, Partial Pre-Rendering 和 SSR 之间的问题
写的太长了,而且看的教程也是那么长的英文,估计很难得会有大佬有时间帮忙指点这种根基性的问题了,如果没有本贴权当一些记录和发泄了,相信有一天关于这些问题,会豁然开朗!
2024-03-29 23:48:59 +08:00
回复了 lazyczx 创建的主题 程序员 关于 Next.js 最新的特性, Partial Pre-Rendering 和 SSR 之间的问题
另外,我把代码仓库 public 了,想要看问题 2 的兄台走[这里]( https://github.com/dribble312/nextjs-dashboard)
2024-03-21 18:12:42 +08:00
回复了 lazyczx 创建的主题 程序员 HTTP 请求实现文件上传的问题,请教如何解决?
@NessajCN
太感谢了,我用 Jakarta filter 成功实现了,先验证 Header 再接收请求体。

有网友帮太幸福了!!~~~谢谢
2024-03-21 17:24:26 +08:00
回复了 lazyczx 创建的主题 程序员 HTTP 请求实现文件上传的问题,请教如何解决?
@NessajCN
你说的这种方法,可以先验证 token 再接受 `请求本体` 吗?
如果不行的话,似乎还是没解决问题。
如果可以的话,似乎这个和楼上说的提前验证的方法本质上一样,那么是用的什么 API 呢?
2024-03-21 17:22:30 +08:00
回复了 lazyczx 创建的主题 程序员 HTTP 请求实现文件上传的问题,请教如何解决?
@tool2d
可是 url 都错了,还会和这个参数有关吗。
提前匹配的 API 是啥,我感觉这个能解决问题。
ddddddddddddddd
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3423 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 00:47 · PVG 08:47 · LAX 17:47 · JFK 20:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.