2009-06-12 26 views
8

Tôi bắt đầu sử dụng Dojo; đây là (chủ yếu) giới thiệu của tôi với AJAX. Chúng tôi có một phụ trợ Java (mô-men xoắn/tuabin/vận tốc) và đang sử dụng thư viện JSON-RPC jabsorb để kết nối Java và Javascript.Essential Dojo

Tôi cần biết điều gì? Bức tranh lớn về Dojo và JSON là gì, và những chi tiết nhỏ khó chịu nào khiến tôi bắt kịp? Bạn đã dành một vài ngày để theo dõi, khi bạn bắt đầu với Dojo, điều mà bạn bây giờ cho là được cấp? Cảm ơn bất kỳ và tất cả các mẹo.

+2

Nếu bạn chỉ mới bắt đầu AJAX và không có yêu cầu cho DOJO, bạn có thể muốn chuyển sang jQuery. Nó có một API rất đơn giản và một đường cong học tập rất nhỏ. – jconlin

+0

Cảm ơn, jconlin, nhưng tôi không có lựa chọn. –

+2

Tôi đã tìm thấy rất nhiều nhóm sử dụng Java trên chương trình phụ trợ như Dojo trên giao diện người dùng. Không chắc chắn lý do tại sao. Dojo có đường cong dốc hơn, nhưng nó được thêm vào rất nhiều cú pháp giống jQuery. Tôi thích những thứ pubsub. – Nosredna

Trả lời

9

Điều đầu tiên cần làm là làm quen với Mô hình đối tượng Dojo. JavaScript không có một hệ thống lớp, do đó bộ công cụ Dojo đã tạo ra một kiểu mô hình đối tượng "theo quy ước" hoạt động khá tốt nhưng rất khác với cách nó hoạt động trong Java chẳng hạn.

Lý do tôi đề xuất làm quen với nó là để bạn có thể tìm hiểu cơ sở mã bất cứ khi nào bạn bắt đầu gặp sự cố. Các tài liệu có sẵn đã được cải thiện đáng kể trong năm qua, nhưng bây giờ và sau đó tôi thấy mình phải làm việc ra một lỗi trong mã của tôi bằng cách tìm hiểu chính xác cách mã Dojo liên quan đến công việc.

Một mẹo khác là sử dụng tính năng tạo tùy chỉnh sẽ cải thiện đáng kể hiệu suất khi ứng dụng của bạn đã sẵn sàng.

Là một mẹo chung về lập trình DHTML, hãy sử dụng firebug (một trình cắm thêm cho Firefox). Nó cho phép gỡ lỗi JavaScript, kiểm tra DOM, chỉnh sửa HTML trong thời gian thực và nhiều hơn thế nữa. Tôi đã hoàn toàn phụ thuộc vào nó bây giờ khi tôi đang làm việc trong DHTML!

Chúc may mắn!

+0

Donal: là có một "Dojo Object Model" cụ thể để Dojo, hoặc là DOM - Mô hình đối tượng tài liệu - hoặc tôi thiếu cái gì đó? Cám ơn. – philant

+0

Nó đặc trưng cho Dojo và, theo cách riêng của chúng, "chức năng mô phỏng" một hệ thống lớp. Bạn có thể đọc thêm về nó tại đây http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/object-orientation –

+2

Không có thứ gì như viết hoa " Mô hình đối tượng Dojo ". Dojo có một cách tiếp cận hướng đối tượng giả cổ điển, tức là, bạn có thể viết các lớp. Đừng nhầm nó. –

5

Tôi cũng chỉ cần bồ câu đầu tiên vào Dojo, họ có tài liệu API tốt tại http://api.dojotoolkit.org/. Ngay cả Dojo Campus cũng có một số ví dụ hay về các plug in.

Nếu bạn hỏi tôi O'Reilly Dojo: Hướng dẫn dứt khoát là sách Dojo tốt nhất trên thị trường.

Tôi cũng muốn có bất kỳ mẹo và gợi ý nào từ các võ sư Dojo.

Chúc mừng

5

Đảm bảo tài liệu bạn đọc liên quan đến bản phát hành gần đây nhất có thể, vì rất nhiều thay đổi rất nhanh trong kiến ​​trúc Dojo. Cũng là một cách tuyệt vời để xem cách sử dụng một số tiện ích Dojo hoặc Dijit là xem mã nguồn cho các thử nghiệm - ví dụ: DataGrid có tài liệu kém nhưng các thử nghiệm cho thấy nhiều trường hợp và cấu hình sử dụng.

Sitepen là tài nguyên tốt cho Dojo articles.

Ngoài ra, hãy đọc trên Deferred (và DeferredList), cũng như hitch() - hai tính năng cực kỳ linh hoạt và mạnh mẽ của Dojo. SitePen có một bài viết tuyệt vời về việc làm sáng tỏ Deferred s.

Kiểm tra plugd, một bộ sưu tập các tiện ích của Dojo giúp thực hiện một số điều thuận tiện hơn hoặc thêm một số chức năng thông minh cho ngôn ngữ. Nó được tạo ra bởi một trong những tác giả Dojo cốt lõi nên nó khá đáng tin cậy. Nó thậm chí còn mang lại một số niceties jQuery vào khung công tác.

Một số thứ khác: xem xét các kho dữ liệu, chúng rất hữu ích và một cách sạch hơn để xử lý Ajax.DojoX cũng có rất nhiều điều thú vị, chỉ cần nhớ rằng phạm vi DojoX trong tài liệu cũng như cách thử nghiệm các thành phần. Tìm hiểu sự khác biệt giữa dojo.byId và dijit.byId, cũng như các thuộc tính HTML id so với jsId (một lần nữa, Sitepen có một bài viết).

+0

Cảm ơn; điều này rất hữu ích. –

+0

Một lưu ý, Trì hoãn là tốt cho việc thực hiện các quá trình không đồng bộ như các cuộc gọi Ajax hoạt động đồng bộ, như thể bạn phải chờ một số cuộc gọi ajax quay lại trước khi tiếp tục bước tiếp theo. – aehlke

4

Một vài điều mà bắt gặp tôi khi tôi bắt đầu viết các widget nơi:

[Hiểu dojoAttachPoint, dojoAttachEvent, containerNode và widgitsInTemplate làm] [1]

có nắm vững đóng cửa,

Nhận đầu của bạn xung quanh deferreds

hiểu ItemFileReadStore, ItemFileWriteStore và các cửa hàng nói chung

Bạn có thể xem các cửa hàng như một ResultSet (loại), bạn có thể kết nối dữ liệu với các widget.

Với những khái niệm chính này, bạn có thể bắt đầu tập hợp một số ứng dụng hấp dẫn. Nói chung những gì tôi làm là xây dựng mặt tiền JavaScript xung quanh các cuộc gọi dịch vụ của mình và sau đó tôi sẽ xóa phản hồi vào cửa hàng bằng cách đính kèm gọi lại đầu tiên ở mặt tiền, gọi lại chuyển đổi kết quả vào cửa hàng và sau đó trả về . Điều này cho phép tôi không khó ràng buộc các dịch vụ của tôi với các cấu trúc Dojo (vì vậy tôi có thể hỗ trợ thiết bị di động, v.v.) trong khi cũng làm lại dữ liệu từ mặt tiền theo định dạng mà các tiện ích nhận biết dữ liệu mong đợi.

Cũng như nếu bạn đang phát triển dịch vụ Java, bạn muốn xem xét JAX-RS. Tôi bắt đầu sử dụng JSON-RPC đã trở thành JABS-ORB nhưng sau khi làm việc với JAX-RS, tôi thích nó hơn, vì nó tích hợp tốt với JPA-EJB và JAXB.

0

Lần đầu tiên đọc cách định cấu hình Dojo trong ứng dụng của bạn. Cố gắng hiểu cấu trúc cơ bản của Dojo như thể chúng ta đang viết dijit.form.Button hoặc dijit/form/Button có nghĩa là Button.js nằm trong thư mục dijit/form. Cố gắng hiểu yêu cầu, xác định, khai báo các mô-đun của Dojo. Điều này là đủ để bắt đầu Bộ công cụ Dojo.

Thực tế rất quan trọng, hãy thưởng thức dự án mẫu của riêng bạn bằng Dojo.