2012-04-28 41 views
8

Làm cách nào để chạy dart trong máy chủ? nói trong localhost hoặc bất kỳ máy chủ web? Hiện tại, google cung cấp trình soạn thảo phi tiêu thực thi mã trong trình duyệt dartium. Ngoài ra, ngay cả khi tôi chạy nó trên một máy chủ, nó có thể hiển thị cho những người khác đang xem trang trong một trình duyệt không phải là dartium không?Chạy phi tiêu trong máy chủ web

+0

Xem: [có Dart VM sẵn?] (http://stackoverflow.com/q/7714302/648313) – Idolon

Trả lời

9

Khi bạn tạo một "Ứng dụng web" mới bằng cách sử dụng Trình chỉnh sửa Dart, nó tạo tệp .html và tệp .dart. Các tập tin html sử dụng một thẻ để liên kết đến tập tin .dart, ví dụ:

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

Biên tập viên cũng có thể tạo một tập tin javascript từ tập tin .dart, ví dụ:

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

Theo như một máy chủ web có liên quan, đây là những tệp tĩnh đơn giản được phân phát cho trình duyệt.

Tệp html chứa liên kết đến tập lệnh JavaScript đặc biệt có thể xác định xem trình duyệt đang được sử dụng có hỗ trợ gốc cho Dart (ví dụ: Dartium) hay không.

  • Nếu có, sau đó cặp MyApp.html và MyApp.dart sẽ được sử dụng.

  • Nếu trình duyệt không hỗ trợ Dart natively, thì tập lệnh đặc biệt sẽ thay đổi động phần tử tập lệnh để trỏ đến tệp MyApp.dart.js thay vào đó, để trình duyệt nhận được phiên bản javascript của ứng dụng của bạn.

Điều này có nghĩa là bạn có thể sao chép ba tệp (.html, .dart, .js) vào bất kỳ máy chủ web nào (máy chủ cục bộ hoặc cách khác) và chỉ cần duyệt đến tệp .html.

Để hoàn chỉnh, các "kịch bản đặc biệt" có thể được xem tại đây: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js

+0

Chris, bạn có thể sử dụng Ví dụ JSON Dart của mình http://www.dartlang.org/articles/json-web-service/ để được phục vụ bởi Apache hoặc lighthttpd hoặc nginx WebServer không? btw, bạn có toàn bộ mã đầy đủ ở đâu đó không? ^^ – Gero

+0

Có, điều đó sẽ hoạt động với bất kỳ máy chủ web nào cung cấp dịch vụ qua POST và GET. Có mã tương tự trong ví dụ này gửi và truy xuất dữ liệu từ máy chủ web: https://github.com/chrisbu/dartwatch-blog-server/blob/master/client/blog.dart (phần máy chủ trong trường hợp này) cũng được viết bằng phi tiêu, nhưng nó không cần phải là) –

0

Dartium chỉ là Trình duyệt Chromium có hành vi vi phạm trực tiếp chạy phi tiêu trong "vart phi tiêu". Điều này làm tăng tốc quá trình phát triển. Cách phổ biến để sử dụng phi tiêu trong các trình duyệt khác và trên máy chủ web của bạn là: biên dịch phi tiêu-code để javascript mẹ đẻ :)

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

Frog là trình biên dịch, biên dịch mà phi tiêu-code để javascript

+2

câu hỏi đặt ra là (như tôi nghĩ) trong làm thế nào để di chuyển phi tiêu từ phía máy khách (trình duyệt) đến phía máy chủ –

+0

@ om-nom-nom yups. – gopi1410

+0

@senk: cảm ơn trình biên dịch ếch. không biết về nó. – gopi1410

11

Bạn thực sự có thể chạy Dart như một máy chủ 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(); 
    }); 
    }); 
} 

Đó bắt đầu một máy chủ web trên máy tính cục bộ sử dụng cổng 8080. Nó chỉ đơn giản là trả về "Xin chào, thế giới".

Từ đó tất cả các bạn cần làm là xác định các tuyến đường của bạn, những hành động, vv

+1

Điều này chỉ tốt cho việc phát triển hay sản xuất? – izolate

-1

Đây là cách tôi đặt Dart trên Google App Engine, đó là: các Dart đang chạy trong trình duyệt/trên máy khách phụ:

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

+1

Bạn có thể muốn chỉnh sửa câu trả lời đó, nó trỏ đến một blogpost mà chính nó trỏ đến mã mẫu. Đó là một chuyển hướng ba. Cảm thấy tự do để ping cho tôi một upvote khi thực hiện :) – eckes

Các vấn đề liên quan