gpt4 book ai didi

javascript - 为什么不以浏览器特定的字节码发送 JavaScript 文件?

转载 作者:行者123 更新时间:2023-12-02 16:26:26 25 4
gpt4 key购买 nike

JavaScript 没有通用的字节码,但大多数 JavaScript 引擎都有自己的字节码。由于 JavaScript 文件作为源代码字符串传输,因此它们必须在执行之前将源代码字符串解析/编译为字节码。

但是,由于我们可以在 HTTP 请求中指定用户代理类型(例如浏览器类型和版本),难道我们不能让服务器为每个浏览器保留字节码并做出相应的响应,以节省客户端的时间吗?

是什么阻止我们采取这种方法?我不认为浏览器不会有任何问题,即使某些 JavaScript 文件以字节码形式给出,而其他文件则以源字符串形式给出。同样,我们在Python中也有.pyc文件,并且它与.py文件一起运行得很好。

[更新]我能想到的潜在好处如下。

  1. 您可以节省客户端的解析时间。解析速度很快,但对于低端设备可能值得这样做。
  2. 您可以在字节码中添加一些提示。例如,JavaScriptCore(WebKit 的 JavaScript 引擎,简称 JSC)使用运行时收集的信息(例如类型)来修补字节码。 JSC 的字节码的设计方式是为此类信息提供插槽。

在可维护性方面,如果客户端的浏览器不支持,服务器始终可以发送原始源代码字符串,并且没有那么多不同的 JavaScript 引擎。支持四种最流行的浏览器(Chrome、Firefox、IE 和 Safari)对我来说似乎是可行的。此外,我没有看到字节码指令集经常变化。

最佳答案

  • 所有引擎都需要公开其字节码格式
  • 服务器需要保存很多不同的字节码文件,甚至动态编译它们
  • 浏览器检测充满危险(用户代理撒谎、代理缓存)
  • 字节码规则可能会在浏览器的次要版本之间发生变化
  • 性能提升可能不会那么显着(特别是与网络传输时间相比)

关于javascript - 为什么不以浏览器特定的字节码发送 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com