限制
在使用 nuqs 或 URL 参数时,有一些限制需要注意。
URL 更新节流
浏览器会对 History API 进行速率限制,URL 的更新会被排队并节流,默认值为 50ms,这似乎能满足大多数浏览器,即使在发送高频查询更新时,比如绑定到文本输入或滑块。
Safari 的速率限制更严格,需要 120ms 的节流(旧版本 Safari 为 320ms)。
Nuqs 开箱即用地处理了这个问题,因此您不会遇到这些速率限制,不过也可以设置自己的自定义节流。
有关如何设置自定义节流的更多信息,请参阅 URL 更新的速率限制。
最大 URL 长度
大多数现代浏览器都会强制执行最大 URL 长度限制,这可能会因浏览器而异:
- Chrome: ~2 MB(实际使用中,您可能会在约 2000 个字符左右遇到问题)。
- Firefox: ~65,000 个字符。
- Safari: 通常限制更严格(约 80,000 个字符)。
- IE/Edge: 历史上限制为 2083 个字符(IE),尽管 Edge 已放宽了此限制。
此外,社交媒体、消息应用和电子邮件等传输机制可能会对 URL 长度施加显著更低的限制。在这些平台上共享长 URL 可能会导致其被截断、换行或无法使用。
请记住,并非所有应用状态都应存储在 URL 中。超过 2000 个字符的范围可能表明需要重新考虑您的状态管理方法。