10

Chúng tôi đang làm việc trên một ứng dụng khá lớn và rộng. Trang web sẽ có nhiều phần khác nhau với một số yêu cầu và hành vi giao diện người dùng rất khác nhau.Ưu điểm và nhược điểm của tài sản-đường ống/turbolinks từ Rails 4 cho một ứng dụng lớn là gì?

Nhìn vào tương lai, Rails 4 đã tách đường ống nội dung thành một viên ngọc riêng biệt để chúng tôi có thể chọn đưa nó vào hay không. Điều tương tự cũng có thể xảy ra với turbolinks.

Câu hỏi tôi tiếp tục tự hỏi mình những ngày này và không thể tìm thấy câu trả lời là: tôi có nên sử dụng các thư viện này trong dự án của chúng tôi hay không?

Các vấn đề chính trong sự phản ánh của tôi là thực tế rằng chiến lược tập tin tất cả trong một có thể sẽ không hoạt động và chúng tôi sẽ phải sử dụng các gói tệp trong các phần khác nhau của ứng dụng. Làm thế nào turbolinks sẽ phản ứng với điều này, bởi vì nó phải giả định rằng tất cả các js/css đã được nạp? Những lợi thế của cấu hình như vậy có khắc phục được sự phức tạp của mã được ngụ ý bởi cả đường ống và turbolinks không?

Tôi không mong đợi câu trả lời Có/Không, chỉ cần một số ý kiến ​​về vấn đề này.

+0

Turbolinks đã là một đá quý. https://github.com/rails/turbolinks – emrahbasman

+0

Hum true, nhưng họ vẫn có thể quyết định không bao gồm nó theo mặc định. –

Trả lời

11

Cả hai đều là công cụ có giá trị mà không nhất thiết phải triệt tiêu lẫn nhau.

Turbolinks: Cho phép bạn chỉ tải nội dung trang, do đó làm cho nó hoạt động như một yêu cầu AJAX (ví dụ về hành vi như vậy sẽ là một Facebook có).

Ưu điểm:

  • Bỏ qua nhiệm vụ trình duyệt của render hoàn toàn một trang mới, do đó loại trừ các "trang trắng" thời gian mà trình duyệt không phản hồi.
  • Liên quan đến trước: Trong trường hợp bạn đang gặp phải hành vi có thể bị ảnh hưởng khi tải trang mới, như nói, chơi một bài hát, turbolinks sẽ không ảnh hưởng đến nó (xem âm thanh tiếp theo).
  • Không tải lại đầu tài liệu, do đó không tải cùng một thẻ/nội dung hai lần (nếu nó giống nhau).
  • Cho phép bạn vẫn lưu vào bộ nhớ cache xem nội dung ở phía máy chủ.

Nhược điểm:

  • Một kéo nếu thẻ tiêu đề thực sự cần phải được cập nhật (file mới js, css file mới, thẻ meta cập nhật ...)
  • Nếu bạn muốn sử dụng client-side xem hiển thị, nó không chỉ là công cụ cho nó.
  • Hành vi mặc định để tắt hành vi này chỉ gây đau đớn (sử dụng các lớp css để vô hiệu hóa các thẻ neo bên trong một phần? Mà chỉ hút).

Đó thực sự là câu hỏi về kiến ​​trúc của ứng dụng của bạn là gì, nó nhắm mục tiêu gì.

Về đường ống tài sản, tôi đã có kết quả hỗn hợp với nó, mặc dù tôi muốn nói nó có nhiều ưu điểm hơn bất lợi. Nhìn chung, các công cụ tiền xử lý nâng cao năng suất phát triển trình duyệt chéo, nhưng không phụ thuộc vào nó trong sản xuất. Nhưng trong trường hợp của pipelining tài sản, nó phải làm tốt với những gì bạn muốn nó cho. Bạn có thể xử lý SASS, Coffeescript, bạn có các thư viện tuyệt vời như la bàn hoặc bourbon, nhưng điều này cũng có thể tăng chi phí hiệu suất của bạn. Vì vậy, điểm chuẩn nó và xem liệu đây có nên là công cụ cho bạn.

2

Hãy bắt đầu với một bài về các nhược điểm: http://eviltrout.com/2013/01/06/turbolinks-and-the-prague-effect.html

Nếu đây không phải là một vấn đề cho bạn: http://geekmonkey.org/2012/09/introducing-turbolinks-for-rails-4-0/

Để quấn mọi thứ lên: Turbolinks sẽ cải thiện tải trang của bạn đáng kể nếu bạn các trang chia sẻ kiểu dáng JavaScript và CSS. PJAX có ích, khi hiệu suất phía máy chủ là một vấn đề.

  • Hope this helps :)
+0

Bài đăng trên blog về những hạn chế thực sự rõ ràng về lý do KHÔNG sử dụng turbolinks (và tôi nghĩ rằng tôi chắc chắn trong đó) vì vậy có nó đã giúp :) –

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