2012-04-28 174 views
8

如何在服務器上運行dart?說在本地或任何Web服務器?目前谷歌提供了一個在dartium瀏覽器中執行代碼的dart編輯器。另外,即使我在服務器上運行它,其他人在除瀏覽器以外的瀏覽器中查看頁面時也可以看到它?在網絡服務器上運行dart

+0

參見:是否有飛鏢VM可用?](http://stackoverflow.com/q/7714302/648313) – Idolon 2012-05-04 14:19:59

回答

9

當您使用Dart編輯器創建新的「Web應用程序」時,它會創建一個.html文件和一個.dart文件。 HTML文件使用標籤鏈接到.dart文件,如:

MyApp.html //contains <script type="application/dart" src="MyApp.dart"></script> 
MyApp.dart //contains dart app code. 

編輯器還可以生成從.dart文件中的JavaScript文件,如:

MyApp.dart.js //contains dart app code converted to JS 

至於一web服務器而言,這些只是靜態文件,可以傳送給瀏覽器。

該html文件包含一個指向特殊JavaScript腳本的鏈接,該腳本可以識別正在使用的瀏覽器是否具有對Dart(即Dartium)的本機支持。

  • 如果確實如此,則使用MyApp.html和MyApp.dart文件對。

  • 如果瀏覽器本身不支持Dart,那麼特殊腳本會動態地將腳本元素更改爲指向MyApp.dart.js文件,以便瀏覽器接收您的應用程序的JavaScript版本。

這意味着,你可以在三個文件(html的,.dart,.js文件)複製到任何網絡服務器(本地主機或其他),並簡單地瀏覽到.html文件。

爲了完整起見,「特殊的腳本」在這裏可以查看: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js

+0

Chris,是否可以使用JSON Dart示例http://www.dartlang.org/articles/json-web-service/由Apache或lighthttpd或nginx WebServer提供服務?順便說一句,你有完整的代碼作爲一個地方? ^^ – Gero 2012-04-28 13:29:49

+0

是的,這將適用於任何通過POST和GET提供服務的Web服務器。本例中有類似的代碼,用於從Web服務器發送和檢索數據:https://github.com/chrisbu/dartwatch-blog-server/blob/master/client/blog.dart (此例中的服務器部分也是用飛鏢寫的,但它不一定是) – 2012-04-30 14:54:53

0

Dartium只是一個可以直接在「dart vm」中運行dart的Chromium瀏覽器。這加快了開發過程。在其他瀏覽器和您的網絡服務器使用飛鏢的常用方法是:飛鏢代碼編譯爲本地的javascript :)

http://www.dartlang.org/docs/getting-started/sdk/#frog

青蛙是編譯器,編譯鏢代碼爲JavaScript

+2

的問題是,(我認爲)在如何鏢從移動客戶端(瀏覽器)到服務器端 – 2012-04-28 05:42:26

+0

@ om-nom-nom yups。 – gopi1410 2012-04-28 05:44:43

+0

@senk:感謝青蛙編譯器。不知道這件事。 – gopi1410 2012-04-28 05:45:39

11

實際上,你可以跑鏢作爲Web服務器:

import 'dart:io'; 

main() { 
    HttpServer.bind('127.0.0.1', 8080).then((server) { 
    server.listen((HttpRequest request) { 
     request.response.write('Hello, world'); 
     request.response.close(); 
    }); 
    }); 
} 

,使用本地機器上啓動一個Web服務器端口8080.它只是返回「Hello,world」。

從那裏,你需要做的就是定義你的路線,動作等

+1

這僅僅適用於開發或生產嗎? – izolate 2014-07-28 07:53:11

-1

這是我如何把飛鏢谷歌應用程序引擎,那就是:那就是在瀏覽器中運行的飛鏢/客戶端方:

http://ambio-strong.blogspot.no/2012/07/dart-on-google-app-engine.html

+1

您可能想要編輯該答案,它指向一個博文,該博文本身指向示例代碼。這是一個三重定向。隨時ping我一個upvote時完成:) – eckes 2012-07-23 23:29:26

相關問題