Dart虚拟机 - 外部浏览器(非Google)

5

我稍微使用过Dart,认为它非常出色。我了解它可以输出原生的JS,并且很可能会在Google浏览器中受到支持。但是因为其他浏览器供应商可能不支持Dart VM,是否有可能在客户端机器上安装Dart VM以在外部浏览器中使用?


“是否有可能在客户端计算机上安装Dart VM以便在外国浏览器中使用?”一个由网页提供的解释器算吗? - John Dvorak
2个回答

3

是否有可能在客户端机器上安装Dart虚拟机以在外国浏览器中使用?

是的,不过自己提供Dart虚拟机会更容易。


Javascript完全能够:

  • 找到特定类型的script
  • 将脚本转换为Javascript
  • 执行编译后的脚本

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

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

通常情况下,您不关心哪个选项(也许您甚至会得到即时编译器),但是在Dart虚拟机存在(而不仅仅是执行代码)方面确实有所区别。


除非您预编译,否则页面上必须存在Dart编译器。

最简单的方法是在头部写入<script src="path/to/your/dart-compiler.js"></script>

Dartium浏览器确实支持原生Dart,但它并不是为常规使用而设计的。维基百科说:

在Dartium浏览器中:Dart SDK附带了一个修改版的Chromium Web浏览器,其中包含了一个Dart虚拟机。该浏览器可以直接运行Dart代码,无需将其编译成Javascript。目前它不是用于常规用途,而是作为Dart应用程序的开发工具。 当将Dart代码嵌入Web应用程序时,当前推荐的过程是加载一个引导JavaScript文件“dart.js”,该文件将检测Dart VM的存在或不存在,并分别加载相应的Dart或已编译的Javascript代码,从而保证浏览器与自定义Dart VM的兼容性。

如果您希望能够运行Dart取决于客户端机器而不是页面,则还有一些方法。

一种方法是将编译器作为用户脚本包含在其中。这将适用于所有现代桌面浏览器,但我不确定是否存在一种现有的方法来添加对Internet Explorer的用户脚本支持。
一种方法是添加浏览器扩展程序。所有现代桌面浏览器都支持扩展程序,而 Internet Explorer具有浏览器帮助对象
所有这些都需要额外的JavaScript步骤。如果您想要绕过JavaScript进行本地解释,您需要一个插件。插件需要特定的MIME类型才能运行(不确定脚本类型是否计算在内),但是您可以安装一个扩展程序来触发插件的使用。但是,DOM操作仍然需要额外的JavaScript步骤。没有其他方法。
桌面安装程序肯定可以将插件安装到浏览器中。实际上,这是插件通常被安装的方式。从桌面安装程序安装扩展程序也可能是可能的,但我目前无法确认或否认这个说法。

为了帮助像我一样好奇的人们。似乎Dart不再支持此功能。您必须手动编译为JS或仅使用Dartium。不再有浏览器解析。至少在我所知道的范围内是这样。 - MeanEYE

2
据我所知,目前没有简单安装Dart插件(例如Flash)的方法。对于Internet Explorer浏览器,可以安装Chrome Frame插件,但我在Firefox和Safari上没有看到类似的东西。

2013年6月,谷歌宣布他们将于2014年1月停止支持和更新Chrome Frame。详情请见:Retiring Chrome Frame - rsp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接