2013-01-06 50 views
5

我用Dart玩過一點,我覺得它很棒。據我所知,它可以輸出本地JS,並且虛擬機很可能會在Google的瀏覽器中得到支持。由於其他瀏覽器供應商可能不支持Dart VM,是否可以在客戶機上安裝Dart VM以便在國外瀏覽器中使用?Dart VM - 外國瀏覽器(非Google)

+0

「是否有可能在客戶端機器上安裝Dart VM以供在國外瀏覽器中使用?」網頁提供的解釋器計數是否? –

回答

3

是否有可能在客戶端機器上安裝Dart VM以便在國外瀏覽器中使用?

但是,它是自己提供Dart VM更容易。


JavaScript是完全能夠:

  • 查找的特定type
  • 一個script轉換腳本轉換爲JavaScript
  • 執行編譯腳本

雖然這是技術上不是飛鏢虛擬機,它會讓你的飛鏢代碼全速執行。但是,您必須等待編譯完成。通常的方法是在服務器上進行編譯(一次),並只將編譯後的JavaScript發送給客戶端。

另一種選擇是解釋代碼。 Dart指令不是編譯爲javascript,而是逐個執行。 Dart不是機器級語言,因此它需要解析,但接下來是解釋。缺點是性能下降。這將使您儘可能地擁有一個完整的虛擬機(與Javascript單獨分離)。

通常情況下,你不關心你得到哪一個(也許你甚至會得到一個即時編譯器),但它確實在Dart 虛擬機存在方面有所作爲(相反不僅僅是讓你的代碼執行)。


達特編譯器必須存在某種方式在頁面上(除非你預編譯)。

最簡單的方法是將<script src="path/to/your/dart-compiler.js"></script>寫入頭部。

Dartium瀏覽器本身支持Dart,但它不是爲通用設計的。 Wikipedia says:

在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 has Browser Helper Objects

所有這些都需要額外的Javascript一步。如果你想繞過Javascript的本地解釋,你需要一個插件。插件需要特定的mime類型才能運行(不知道腳本類型是否包含在內),但是您可以安裝一個可以觸發插件使用的擴展。然而,DOM操作仍然需要額外的JavaScript步驟。沒有其他辦法了。

桌面安裝程序可以肯定地安裝插件到瀏覽器。的確,這是插件通常被安裝的方式。從桌面安裝程序安裝擴展也是可能的,但我現在還不能確認或否認這個最後的聲明。

+0

幫助人們像我一樣思考。似乎這個功能已不再適用於Dart。您必須手動編譯爲JS或僅使用Dartium。沒有瀏覽器內解析了。至少不是我所知。 – MeanEYE

+0

@MeanEYE更新了,謝謝你的提示。 –

+0

歡迎您! :) – MeanEYE

2

據我所知,沒有辦法只是簡單地爲Dart安裝插件(如Flash)。對於Internet Explorer,可以安裝Chrome框架,但我沒有看到類似的Firefox和Safari。

+0

2013年6月,谷歌宣佈他們將在2014年1月停止對Chrome Frame的支持和更新。請參閱:[退出Chrome框架](http://blog.chromium.org/2013/06/retiring-chrome-frame.html ) – rsp

相關問題