Large-Allocation

优质
小牛编辑
132浏览
2023-12-01

非标准Large-Allocation响应头告诉浏览器正在加载的页面将要执行大量分配。它目前只在 Firefox 中实现,但对每个浏览器都是无害的。

WebAssembly 或 asm.js 应用程序可以使用大量连续的已分配内存块。例如,对于复杂的游戏,这些分配可能非常大,有时高达1GB。的Large-Allocation讲述,在待加载的页面的 web 内容将要要执行大的连续存储器分配的浏览器和浏览器可以通过启动一个专门处理为要被加载的文件到此接头反应,如下例。

Header type

Response header

Forbidden header name

no

句法

Large-Allocation: 0Large-Allocation: <megabytes>

指令

0是一个特殊值,它表示分配的大小是不确定的。<megabytes>要执行的分配的预期大小,以兆字节为单位。

例子

Large-Allocation: 0Large-Allocation: 500

排除错误

Large-Allocation不正确使用时头引发警告或错误消息。您将在 Web控制台中 遇到它们。

这个页面由于头文件而被加载到一个新的进程中。这个Large-Allocation消息意味着浏览器看到了Large-Allocation头文件,并且能够将页面重新加载到一个新的进程中,该进程应该有更多可用的连续内存。Large-Allocation由于加载由非GET请求触发。当POST使用请求来加载文档时,该加载当前不能被重定向到新的进程中。Large-Allocation使用非GET HTTP方法加载包含标题的文档时,会显示此错误。这可能是由于文档通过表单提交加载引起的。例如,由于Large-Allocation存在通过框架层次结构引用此浏览上下文的窗口,因此标头被忽略window.opener

错误表示文档未加载到用户打开或未打开打开的选项卡或窗口的顶层。它可能发生在这些情况下:

  • 带有Large-Allocation标题的文档被加载到一个<iframe>。Firefox 目前无法将 iframe 移动到新进程中,因此文档必须在当前进程中加载。
  • 带有Large-Allocation标题的文档被加载到打开的窗口中window.open()<a target="_blank">或者其他类似的方法没有被设置rel="noopener"或者"noopener"被设置。这些窗口必须保持与它们的开启者相同的进程,因为它们可以进行通信,这意味着我们不能允许它们切换进程。
  • 带有该文档的文档Large-Allocation header已经打开了另一个窗口window.open()<a target="_blank">或者其他类似的方法没有设置rel="noopener""noopener"功能。这是出于与上述相同的原因,即他们可以沟通,因此我们不能允许他们切换流程。

Large-Allocation由于没有被加载出 process.Firefox 的已经移动到文档的页眉被忽略多进程架构,并且该架构以支持所需要的Large-Allocation标头。一些传统的 Addons 可以防止 Firefox 使用这种新的,更快的多进程体系结构。如果您安装了其中一个 Addons,那么我们将继续使用旧的单进程架构来兼容,并且无法处理头文件。Large-Allocation由于Large-Allocation头文件的原因,此页面将在新进程中加载,但是Large-Allocation在非 -Win32 平台.Firefox 目前只支持Large-Allocation头部在我们的32位 Windows 版本中,因为内存碎片在64位版本中不是问题。如果您运行的是 Firefox 的非 win32 版本,则会显示此错误。该检查可以通过 “dom.largeAllocation” 来禁用。

在 config 中的 forceEnable 布尔设置 preferece。

产品规格

不是任何当前规格的一部分。在这个文件中可以找到这个头文件背后的想法的解释者。

浏览器兼容性

Feature

Chrome

Firefox

Edge

Internet Explorer

Opera

Safari

Basic Support

(No)

53

(No)

(No)

(No)

(No)

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(No)

(No)

(No)

(No)

(No)

(No)

(No)

最后更新:

类似资料

  • 问题内容: 我们都知道使用Hibernate时的默认行为-它使实际数据库序列增加 一 ,将该值乘以50(默认值)-然后将该值用作实体ID。 这是错误的行为,并与说明以下内容的规范冲突: distributionSize-(可选)从序列中分配序列号时要增加的数量。 需要明确的是:我不关心生成的ID之间的差距。 我关心与基础数据库序列 不一致的 ID 。例如:任何其他应用程序(例如,使用纯JDBC)可

  • 我在一个配置为使用嵌入式H2数据库的spring应用程序中使用JPA。 我有一个用户实体定义如下: 上下文是这样定义的: 我可以从生成的日志中看到,生成了MY_SEQ。但是,initialValue和allocationSize会被完全忽略,序列不会分配给USER的id字段 因此,当data.sql文件尝试插入行时,我得到以下错误: 我错过了什么?

  • Jboss 7.2.0、ejb3、oracle项目中的所有实体都定义了像@sequenceGenerator这样的序列生成器(Name=“xx”,sequenceName=“yy”allocationsize=“10”) 对于一对多关系,有时我会遇到重复主键的问题。不确定这里有什么问题,但是在事务回滚之后,序列被重置,并且我一直有约束冲突错误,我已经将allocationSize更改为1,这似乎是

  • 我有一个java Spring Boot项目,需要在MySQL和Oracle数据库上运行。该项目在数据库中有多个主键设置为自动递增的实体。 我已经确定,Hibernate的@GenericGenerator在本机策略中将支持MySQL(作为身份)和Oracle(作为序列),这取决于DB的类型。但是我似乎找不到如何在GenericGenerator中为oracle序列设置allocationSize

相关阅读