[英]How to enable sharedArrayBuffer in chrome without cross-origin isolation
[英]Is web worker unavailable when cross-origin isolation is enabled
這是我的兩個文件,test.js 和 test.php。
測試.js:
console.log("test.js is loaded")
測試.php:
<?php
header('Content-Type: text/html; charset=UTF-8');
//header('Cross-Origin-Embedder-Policy: require-corp');
//header('Cross-Origin-Opener-Policy: same-origin');
?><!DOCTYPE html>
<html>
<title>test</title>
<script>
new Worker("/test.js")
</script></html>
瀏覽器控制台按預期打印“test.js 已加載”。 但是如果我注釋掉 test.php 中的這兩行,瀏覽器控制台中不會打印任何內容,這意味着如果我啟用跨域隔離策略,就會出現阻止加載工作程序的問題。 那么在啟用跨域隔離策略的情況下,有沒有正確的方法來使用worker呢?
順便說一句,我必須啟用跨域隔離策略,因為我需要使用 SharedArrayBuffer。
不,Web Worker 可用,但是您的主工作腳本必須在其響應中使用相同的標頭提供服務,這是因為 Worker 確實創建了一個新領域,並且您不能“降級”嵌入器策略。
規格鏈接: https ://html.spec.whatwg.org/multipage/origin.html#check-a-global-object's-embedder-policy。
請注意,如果您無法設置此文件的標頭,您仍然可以使用通常的blob:URL + importScripts()
hack ,但正確配置的服務器總是比 hacks 更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.