私はダートと少し遊んだことがありますが、それは素晴らしいことだと思います。ネイティブJSを出力できること、およびVMがブラウザでGoogleによってサポートされる可能性があることを理解しています。他のブラウザサプライヤがDartVMをサポートしない可能性があるので、外国のブラウザで使用するためにクライアントマシンにDart VMをインストールすることは可能ですか?
2 に答える
Dart VMをクライアントマシンにインストールして、外部ブラウザで使用することは可能ですか?
ただし、DartVMを自分で提供する方が簡単です。
Javascriptは完全に次のことができます。
script
特定ののを見つけるtype
- スクリプトをJavascriptに変換します
- コンパイルされたスクリプトを実行します
これは技術的にはDart仮想マシンではありませんが、Dartコードをフルスピードで実行します。ただし、コンパイルが完了するまで待つ必要があります。通常の方法は、サーバー上で(1回)コンパイルを実行し、コンパイルされたjavascriptのみをクライアントに送信することです。
別のオプションは、解釈されたコードです。JavaScriptにコンパイルする代わりに、Dart命令は1つずつ実行されます。Dartはマシンレベルの言語ではないため、解析が必要ですが、次は解釈です。欠点は、パフォーマンスの低下です。これにより、(Javascriptとは別の)本格的な仮想マシンを可能な限り使用できるようになります。
通常、どちらを取得するかは関係ありませんが(ジャストインタイムコンパイラを取得する場合もあります)、コードを実行するだけでなく、Dart仮想マシンが存在するという点で違いがあります。 )。
Dartコンパイラは、何らかの形でページに存在する必要があります(プリコンパイルしない限り)。
<script src="path/to/your/dart-compiler.js"></script>
最も簡単な方法は、頭に書き込むことです。
DartiumブラウザはDartをネイティブにサポートしていますが、一般的な使用を目的として設計されていません。ウィキペディアによると:
Dartiumブラウザの場合:Dart SDKには、Dart仮想マシンを含むように変更されたバージョンのChromiumWebブラウザが付属しています。このブラウザは、JavascriptにコンパイルせずにDartコードを直接実行できます。現在、汎用目的ではなく、Dartアプリケーションの開発ツールとして使用することを目的としています。[7] DartコードをWebアプリに埋め込む場合、現在推奨されている手順は、ブートストラップJavaScriptファイル「dart.js」をロードすることです。このファイルは、Dart VMの有無を検出し、対応するDartまたはコンパイル済みのJavascriptコードをそれぞれロードします。[ 8]したがって、カスタムDartVMの有無にかかわらずブラウザの互換性を保証します。
Dartを実行する機能をページではなくクライアントマシンに依存させたい場合は、いくつかの方法もあります。
1つの方法は、コンパイラーをユーザースクリプトとして含めることです。これはで動作しますすべて両方の最新のデスクトップブラウザ。ただし、InternetExplorerにユーザースクリプトのサポートを追加する既存の方法があるかどうかはわかりません。
1つの方法は、ブラウザ拡張機能を追加することです。最新のデスクトップブラウザはすべて拡張機能をサポートしており、InternetExplorerにはブラウザヘルパーオブジェクトがあります。
これらはすべて、追加のJavascriptステップが必要になります。Javascriptをバイパスするネイティブ解釈が必要な場合は、プラグインが必要です。プラグインを実行するには特定のmimeタイプが必要です(スクリプトタイプが重要かどうかはわかりません)が、プラグインの使用をトリガーする拡張機能をインストールできます。ただし、DOM操作には追加のJavascriptステップが必要です。それを回避する方法はありません。
デスクトップインストーラーは間違いなくプラグインをブラウザーにインストールできます。実際、これはプラグインが通常インストールされる方法です。デスクトップインストーラーから拡張機能をインストールすることも可能かもしれませんが、現時点ではこの最後の主張を確認または否定することはできません。
私の知る限り、Dart用のプラグイン(Flashなど)を単にインストールする方法はありません。Internet Explorerの場合、Chromeフレームをインストールできますが、FirefoxとSafariで同様のものは見たことがありません。