WebAssembly 不包含在Internet Explorer 功能中。您可以在 mozilla.org了解浏览器兼容性,不,IE 不支持 WebAssembly。
请记住 IE 已停产,但仍保持不变:
Internet Explorer 11 会继续接收更新吗?
最新功能和平台更新仅在 Microsoft Edge 中可用。我们将在 Internet Explorer 11 支持的生命周期内继续为其提供安全更新。为确保跨 Windows 版本的行为一致,我们将根据具体情况评估 Internet Explorer 11 错误以进行服务。
从 WebAssembly 更改为组件模式只需更改几行代码,但部署这两种模式以保持对 IE 的兼容性似乎很奇怪。请记住 Blazor 是实验性的,我想对于真正的部署,您应该等待一段时间......是时候从 IE 更新到其他浏览器了。
真的有办法在(仅)Internet Explorer 中正确地回退到 asm.js 模式吗?
我想这与“如何检查浏览器是否支持 WebAssembly?”是同一个问题。,只需调整 Blazor 的答案:
const isClientSideWebAssemblySupported = (() => {
try {
if (typeof WebAssembly === "object"
&& typeof WebAssembly.instantiate === "function") {
const module = new WebAssembly.Module(
Uint8Array.of(0x0, 0x61, 0x73, 0x6d,
0x01, 0x00, 0x00, 0x00));
if (module instanceof WebAssembly.Module)
return new WebAssembly.Instance(module)
instanceof WebAssembly.Instance;
}
} catch (e) {
}
return false;
})();
var script = document.createElement('script');
script.src = (isClientSideWebAssemblySupported)?
"_framework/blazor.server.js":
"_framework/blazor.webassembly.js";
请记住将两者都包含js
在您的项目中。