Large-Allocation

这篇翻译不完整。请帮忙从英语翻译这篇文章

 

非标准的Large-Allocation 响应头部是用来告诉浏览器加载该页面可能需要申请大内存. 当前只有Firefox实现改特性,但是对其他浏览器也无损害。

WebAssembly 或者 asm.js会使用比较大的连续内存空间。例如, 对于一些复杂的游戏, 其申请的空间将会非常大,甚至会达到1GB。Large-Allocation 告诉浏览器其将要加载的页面可能需要申请一个大的连续内存空间,浏览器依据该头部可能会单独启动一个专有的进程用于处理改页面。

Header type Response header
Forbidden header name no

语法

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

指令

0
0 是一个特殊的值,代表给它分配的大小是不确定的(动态允许).
<megabytes>
预期需要申请的内存大小,以M为单位
 

示例

Large-Allocation: 0
Large-Allocation: 500

排除错误

 

如果使用不当, Large-Allocation 会抛出警告或者错误信息,你可以在 web console 查看它们。

由于Large-Allocation报头存在,这个页面会在一个新的进程处理和加载
This message means that the browser saw the Large-Allocation header, and was able to reload the page into a new process which should have more available contiguous memory.
 Large-Allocation 报头由于非non-GET请求而直接忽略
当一个 POST 请求用语加载文档, that load cannot currently be redirected into a new process. This error is displayed when loading a document with a Large-Allocation header with a non-GET HTTP method. This could be caused due to the document being loaded by a form submission, for example.
A Large-Allocation header was ignored due to the presence of windows which have a reference to this browsing context through the frame hierarchy or window.opener.

This error means that the document was not loaded at the top level of an user-opened or noopener-opened tab or window. It can occur in these situations:

  • The document with the Large-Allocation header was loaded in an <iframe>. Firefox cannot move an iframe into a new process currently, so the document must load in the current process.
  • The document with the Large-Allocation header was loaded in a window which was opened by window.open(), <a target="_blank"> or other similar methods without rel="noopener" or the "noopener" feature being set. These windows must remain in the same process as their opener, as they can communicate, meaning that we cannot allow them to switch processes.
  • The document with the Large-Allocation header has opened another window with window.open(), <a target="_blank"> or other similar methods without rel="noopener" or the "noopener" feature being set. This is for the same reason as above, namely that they can communicate and thus we cannot allow them to switch processes.
Large-Allocation 报头由于 文档在加载过程没有被加载而直接忽略
Firefox has moved to a multiprocess architecture, and this architecture is required in order to support the Large-Allocation header. Some legacy Addons can prevent Firefox from using this new, faster, multiprocess architecture. If you have one of these Addons installed, then we will continue to use the old single process architecuture for compatibility, and cannot handle the Large-Allocation header.
由于Large-Allocation头部,此页面应将被加载到新进程中, 但是在非Win32平台上禁用此选项。
由于在64位系统里内存碎片不是问题,Firefox只在32位系统支持Large-Allocation头部。如果你运行一个非32位的程序,这类信息就会出现。可以设置about:config里面的"dom.largeAllocation.forceEnable"布尔值来关闭此检查。
 

规范

现还不属于任何规范,可以通过这篇文档了解该头部的背后思想。

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support No No53 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support No No No No No No No

参见

<weel class="_on" data-api-src="google" data-check-aim="false" data-lang-from="en" data-lang-to="zh" id="weel__float-action-button" style="visibility: hidden; opacity: 0; transform: translate3d(85px, 2353px, 0px);"><weel id="weel__float-action-button--container"><weel id="weel__float-action-button--icon"></weel></weel></weel><weel class="_reverse _on" id="weel__float-action-panel" style="visibility: hidden; opacity: 0; transform: translate3d(53.925px, 2199.38px, 0px);"><weel id="weel__float-action-panel--container" style="left: -97.5px;"><weel id="weel__float-action-panel--output-stream"><weel id="weel__float-action-panel--output-stream-result"><weel id="weel__float-action-panel--output-stream-result-word"><weel id="weel__float-action-panel--output-stream-phonetic"><weel id="weel__float-action-panel--i-voice"></weel><weel id="weel__float-action-panel--output-stream-phonetic-plain">[ ... ]</weel></weel><weel id="weel__float-action-panel--output-stream-explain"><weel id="weel__float-action-panel--i-copy"></weel><weel id="weel__float-action-panel--output-stream-explain-plain">也可以看看</weel><weel class="_on" id="weel__float-action-panel--output-stream-explain-detail">参见
参看</weel></weel></weel></weel></weel></weel></weel>

文档标签和贡献者

 此页面的贡献者: crper, shevacjs
 最后编辑者: crper,