2012-04-09 18 views
22

Tôi đã xem nhiều RIA khác nhau và đã nhận thấy một số người sử dụng hoặc yêu cầu JavaScript Routing. Chỉ cần lướt qua nó 'JavaScript Routing' trông giống như một cách để đi qua trang web của bạn ... nhưng tôi có thể sử dụng một liên kết đơn giản cho điều đó. Điều đó có nghĩa là tôi hoàn toàn 'không hiểu'.Định tuyến JavaScript mua cho bạn là gì?

Vậy ...

  • không Routing cung cấp những gì bạn rằng một neo thường xuyên hoặc liên kết không?
  • Chỉ thích hợp trong một số môi trường nhất định? (ví dụ: ASP.NET hoặc HTML thẳng)
  • Nó là gì?
  • Mục đích gì thúc đẩy sự tồn tại của nó?
+0

Xuất sắc. – orbfish

Trả lời

47

Định tuyến là cách tổ chức và quản lý trạng thái ứng dụng. Khung định tuyến trong JavaScript giúp bạn thay đổi trạng thái của ứng dụng - có thể di chuyển từ phần bảng quản trị này sang phần khác của bảng quản trị - trong khi duy trì trạng thái kiên trì ứng dụng .

Nếu bạn muốn điều hướng từ một trạng thái ứng dụng, ví dụ: /admin/users, ví dụ khác, ví dụ: /admin/orders, bạn có thể sử dụng liên kết bình thường như bạn đề xuất. Nhưng sau đó bạn sẽ khiến trình duyệt điều hướng từ trang HTML này sang trang khác. Đây rõ ràng là cách bình thường mà một người điều hướng trên Web. Nhưng trong một ứng dụng JavaScript, điều này là khá kém hiệu quả!

Nếu bạn đang chạy một ứng dụng phức tạp trong trình duyệt bằng JavaScript, thì ứng dụng đó cần thực hiện nhiều công việc khi khởi động. Nó đăng ký trình xử lý sự kiện, tải và thực hiện một loạt các JavaScript, và đôi khi làm cho toàn bộ giao diện trang động (trong trường hợp của ExtJS và một vài thư viện khác). Đó là rất nhiều công việc bổ sung cho trình duyệt để thiết lập một ứng dụng JavaScript tại /admin/orders có nhiều điểm chung với phiên bản /admin/users. Một cách hiệu quả hơn là liên kết để kích hoạt sự kiện mà ứng dụng giám sát và ứng dụng phản hồi bằng cách thay đổi trạng thái của ứng dụng - có thể bằng cách xóa hoặc ẩn chế độ xem của người dùng và thay thế bằng chế độ xem đơn đặt hàng. Định tuyến là cách đại diện cho các giao diện khác nhau này, sử dụng mã thông báo - thường là một đoạn URL như /admin/users - để theo dõi vị trí của người dùng trong giao diện của bạn.

Điều này cho phép ứng dụng duy trì mô hình đối tượng động đã được đốt cháy thời gian và sử dụng bộ nhớ để tạo. Nó làm cho giao diện người dùng phản hồi nhanh hơn và nếu bạn đang sử dụng quản lý lịch sử URL thông qua hashtag hoặc pushState, nó cho phép người dùng điều hướng xung quanh ứng dụng của bạn bằng các nút quay lại và tiến lên của trình duyệt mà không tải lại mọi nội dung trên trang mỗi lần và xóa trạng thái ứng dụng của bạn. Quản lý URL cũng cho phép liên kết sâu tới một số trang trong ứng dụng: khi tải, bộ định tuyến của ứng dụng sẽ kiểm tra chuỗi tuyến mà nó nhận được, mã hóa và tải lên giao diện bạn đã chỉ định trong bảng định tuyến của mình.

Định tuyến không phải là yêu cầu để quản lý sự kiên trì, nhưng đó là cách hay để tổ chức các trạng thái liên tục của bạn. Thông thường, hệ thống định tuyến đi đôi với quản lý lịch sử URL, như Davis.js. Nhưng cũng có các thư viện định tuyến không gây rối với URI, duy trì trạng thái được mã hóa trừu tượng mà bạn có thể sử dụng hoặc hiển thị như bạn thấy phù hợp, như Crossroads.js.

+0

WOW! Tôi hoàn toàn nhận được nó bây giờ! –

+0

Vì vậy, rõ ràng, điều này sẽ không được sử dụng trong một ứng dụng ASP.NET MVC hoặc SharePoint ... phải không? –

+1

SharePoint, có thể là không. SharePoint quản lý đánh dấu của riêng nó, vì vậy bạn sẽ không làm loại công việc tập trung vào giao diện người dùng này. ASP.NET MVC có thể được sử dụng như là công nghệ phía máy chủ cho một RIA hỗ trợ JavaScript, vì vậy câu trả lời cho điều đó là "có thể". Câu hỏi quan trọng là liệu bạn có đang chạy một ứng dụng JavaScript một trang hay không. – zetlen

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