代码之家  ›  专栏  ›  技术社区  ›  Marlon

在Navigationextras中传递大数据router.navigation Angular 16导致Firefox错误

  •  0
  • Marlon  · 技术社区  · 1 年前

    你好社区我有个问题,

    我对“router.navigation([some-url'],附加)”有问题。

    在这个extra对象中,我有一个状态,其中传递了一个可以具有不同大小的列表。

    如果我通过一个小列表<500个项目,然后它在firefox和chrome中工作得很顺利。

    现在我有一个包含17k个项目的案例,然后它只适用于chrome。

    在firefox中,我得到一个错误:

    错误错误:未捕获(承诺中):[异常…“非法值”nsresult:“0x80070057(NS_ERROR_Illegal_value)”位置:“JS帧::https://some-url/main.e9ce4132b9234a49.js::103/l/I::第3行“数据:否]

    在firefox路由器导航。。。崩溃。。。

    我不知道我可以尝试什么,但我希望它在两种浏览器中都能工作

    1 回复  |  直到 1 年前
        1
  •  1
  •   abney317    1 年前

    Firefox has a limit of 640k characters in the state object.

    因为Firefox将状态对象保存到用户的磁盘中,这样它们就可以 在用户重新启动浏览器后恢复,我们会施加大小限制 在状态对象的序列化表示上的640k个字符。 如果传递的状态对象的序列化表示更大 如果将其传递给pushState(),则该方法将引发异常。如果你 需要更多的空间,我们鼓励您使用sessionStorage 和/或localStorage。

    推荐文章