Dart VM - 外国浏览器(非谷歌)

Bri*_* Oh 5 dart

我和Dart玩了一点,我认为这很棒.据我所知,它可以输出原生JS,并且谷歌可能会在浏览器中支持虚拟机.由于其他浏览器供应商可能不支持Dart VM,是否可以在客户端计算机上安装Dart VM以便在国外浏览器中使用?

Joh*_*rak 3

是否可以在客户端计算机上安装 Dart VM 以在外国浏览器中使用?

确实如此,但是您自己提供 Dart VM 会更容易。


JavaScript 完全能够:

  • 查找一个script特定的type
  • 将脚本转换为 Javascript
  • 执行编译好的脚本

虽然这在技术上不是 Dart 虚拟机,但它会让您的 Dart 代码全速执行。但是,您必须等待编译完成。通常的方法是在服务器上进行编译(一次),然后只将编译后的 javascript 发送到客户端。

另一种选择是解释代码。Dart 指令不是编译为 javascript,而是一一执行。Dart 不是机器级语言,因此需要解析,但接下来是解释。缺点是性能下降。这将使您尽可能接近拥有一个成熟的虚拟机(与 Javascript 分开)。

通常,你并不关心你得到的是哪一个(也许你甚至会得到一个即时编译器),但它确实在 Dart虚拟机的存在方面产生了影响(而不仅仅是让你的代码被执行) )。


Dart 编译器需要以某种方式出现在页面上(除非您预编译)。

最简单的方法就是直接写到<script src="path/to/your/dart-compiler.js"></script>头部。

Dartium 浏览器本身确实支持 Dart,但它并不是为通用而设计的。维基百科说:

在 Dartium 浏览器中:Dart SDK 附带了经过修改以包含 Dart 虚拟机的 Chromium Web 浏览器版本。该浏览器可以直接运行 Dart 代码,无需编译为 Javascript。它目前不适合通用用途,而是作为 Dart 应用程序的开发工具。 [7] 将 Dart 代码嵌入到 Web 应用程序中时,当前推荐的步骤是加载引导 JavaScript 文件“dart.js”,该文件将检测 Dart VM 是否存在并分别加载相应的 Dart 或编译的 Javascript 代码,[ 8] 因此保证浏览器在有或没有自定义 Dart VM 的情况下的兼容性。

如果您希望运行 Dart 的能力依赖于客户端计算机而不是页面,也有几种方法。

一种方法是将编译器作为用户脚本包含在内。这将工作在全部都是现代桌面浏览器。但是,我不确定是否存在向 Internet Explorer 添加用户脚本支持的现有方法。

一种方法是添加浏览器扩展。所有现代桌面浏览器都支持扩展,并且Internet Explorer 具有浏览器帮助程序对象

所有这些都需要额外的 Javascript 步骤。如果您想要绕过 Javascript 的本机解释,您需要一个插件。插件需要特定的 mime 类型才能运行(不确定脚本类型是否重要),但您可以安装一个扩展来触发插件的使用。然而,DOM 操作仍然需要额外的 Javascript 步骤。没有其他办法了。

桌面安装程序绝对可以将插件安装到浏览器中。事实上,这就是通常安装插件的方式。从桌面安装程序安装扩展也可能是可能的,但我现在无法确认或否认最后一个说法。