我稍微使用过Dart,认为它非常出色。我了解它可以输出原生的JS,并且很可能会在Google浏览器中受到支持。但是因为其他浏览器供应商可能不支持Dart VM,是否有可能在客户端机器上安装Dart VM以在外部浏览器中使用?
我稍微使用过Dart,认为它非常出色。我了解它可以输出原生的JS,并且很可能会在Google浏览器中受到支持。但是因为其他浏览器供应商可能不支持Dart VM,是否有可能在客户端机器上安装Dart VM以在外部浏览器中使用?
是否有可能在客户端机器上安装Dart虚拟机以在外国浏览器中使用?
是的,不过自己提供Dart虚拟机会更容易。
Javascript完全能够:
script
虽然这不是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的用户脚本支持。