Any3DAny3D
·Any3D Team

Web Worker 不可用?按平台与环境排查

troubleshootingbrowser-compatibilityweb-worker

你看到的症状

Any3D 底部出现黄色警告:「当前浏览器不支持 Web Worker」。预览可能仍可用,但大文件处理容易卡死页面,纹理压缩、图片转模型等 Worker 路径无法启用。

Web Worker 让耗时计算在后台线程运行。Any3D 的纹理压缩与部分转换流程依赖 Worker + OffscreenCanvas + createImageBitmap 三件套。

常见原因

原因典型场景
非安全上下文file:// 打开、HTTP 内网页(非 localhost)
浏览器过旧 / WebView旧版系统浏览器、App 内嵌页
CSP 限制企业门户 iframe、零信任客户端注入 worker-src
扩展拦截隐私插件阻止 Worker 或 blob: URL
网络缓存异常代理/VPN 返回不完整 Worker 脚本
设备监管托管配置文件禁用后台脚本

按平台排查

Windows

  1. 必须通过 HTTPShttps://any3d.cc)访问,不要用本地 HTML 文件。
  2. Edge 企业策略Computer Configuration → Administrative Templates → Microsoft Edge 中检查是否限制 Worker 或第三方 Cookie(间接影响部分 Worker 加载)。
  3. Windows 家庭安全:子账户 Web 限制可能导致 Worker 创建失败。

macOS

  1. Safari / Chrome 均需 macOS 12+ 且浏览器为近期版本。
  2. 屏幕使用时间 → 内容与隐私 → 若启用「限制成人网站」或自定义过滤,可能误伤 Worker 脚本域名。
  3. 公司 MDM 配置文件若禁用「跨站点跟踪」以外的脚本能力,联系 IT。

Linux

  1. 确认访问 URL 为 HTTPS;企业 Squid 代理需允许 blob:worker-src 相关请求。

iOS / Android

  1. 不要在微信/钉钉内置浏览器完成大文件处理;用系统浏览器打开。
  2. iOS 低电量模式通常不禁 Worker,但旧 WebKit 可能缺失 API——保持系统更新。
  3. Android WebView 版本过旧(系统 WebView 未更新)会导致 Worker 不可用:Play 商店更新「Android System WebView」。

网络、VPN 与企业内网

场景说明
公司 VPN部分 VPN 强制 HTTPS 解密并注入 CSP,需 IT 放行 Worker
内网 SSO 门户 iframe外层页面 CSP 可能禁止 worker-src blob:,需嵌套页单独配置或新标签打开 Any3D
反向代理Nginx/网关错误配置可能导致 Worker 脚本 MIME 类型不对
家长路由器 DNS 过滤少见于 Worker,但若整站被降级到 HTTP 镜像,Worker 会失效

自测:断开 VPN、换 4G/5G 热点,看警告是否消失。

企业 CSP 参考(给 IT)

若 Any3D 被 iframe 嵌入,建议允许:

worker-src 'self' blob:;
script-src 'self' 'unsafe-eval' blob:;

个人用户无需手动改 CSP。

分步修复(通用)

  1. 确认 HTTPS 访问,刷新页面(Ctrl+F5 / Cmd+Shift+R)。
  2. 无痕窗口排除扩展。
  3. 更新浏览器与(Android)系统 WebView
  4. 新标签直接打开 Any3D,避免嵌套在企业门户 iframe 内。

快速自测

typeof Worker !== "undefined"

返回 true 仅表示 API 存在;Any3D 还需 OffscreenCanvas 与 createImageBitmap 齐备才走完整 Worker 路径。

没有 Worker 时的影响

功能影响
顶点压缩(Draco 等)通常仍可用(主线程 + WASM)
纹理 / KTX2 压缩Worker 路径不可用,大文件易卡顿
图片转模型可能降级或性能显著下降

小结

Web Worker 警告多源于 非 HTTPS、旧 WebView、企业 CSP/VPN、扩展拦截。按平台更新浏览器、换网络验证、让 IT 检查 iframe/CSP,通常可恢复后台处理能力。

赞助支持