为什么不以浏览器特定的字节码发送JavaScript文件呢
Why not sending JavaScript files in browser-specific bytecode?
JavaScript没有通用的字节码,但大多数JavaScript引擎都有自己的字节码。由于JavaScript文件是以源代码字符串的形式传播的,因此它们必须在执行之前将源代码字符串解析/编译为字节码。
然而,由于我们可以在HTTP请求中指定用户代理类型(例如浏览器类型和版本),难道我们不能让服务器为每个浏览器保留字节码并做出相应的响应以节省客户端的一些时间吗?
是什么阻止我们采取这种方法?我认为浏览器不会有任何问题,即使一些JavaScript文件以字节码形式提供,而另一些则以源字符串形式提供。类似地,我们在Python中有.pyc文件,它可以很好地与.py文件一起运行。
[更新]我能想到的潜在好处如下。
- 您可以节省客户端的解析时间。解析速度很快,但对于低端设备来说,这样做可能是值得的
- 你可以在字节码中添加一些提示。例如,JavaScriptCore(WebKit的JavaScript引擎,简称JSC)用运行时收集的信息(如类型)修补字节码。JSC的字节码是以这样一种方式设计的,即它有用于这些信息的插槽
在可维护性方面,如果客户端的浏览器不受支持,并且没有那么多不同的JavaScript引擎,服务器总是可以发送原始源代码字符串。支持四种最流行的浏览器(Chrome、Firefox、IE和Safari)对我来说似乎是可行的。此外,我没有看到字节码指令集频繁更改。
- 所有引擎都需要公开其字节码格式
- 服务器需要保存很多不同的字节码文件,甚至需要动态编译它们
- 浏览器检测充满危险(用户代理撒谎,代理缓存)
- 字节码规则可能会在浏览器的次要版本之间发生更改
- 性能提升可能不会那么显著(尤其是与网络传输时间相比)
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件