2011-12-15 42 views
5

Cách đơn giản nhất để kết hợp tệp JavaScript vào một tệp duy nhất trong dự án Django là gì?Kết hợp và nén nhiều tệp JavaScript vào một tệp duy nhất trong dự án Django

Giải thích

Tôi muốn điều này để làm việc với Ember.js/Backbone nơi bạn (thường) có nhiều JavaScript khác nhau trong nhiều thư mục. tất cả các thư mục sẽ là trong một thư mục có tên ứng dụng/ví dụ như: app/views/app/mô hình// app/router/

Yêu cầu

  • làm việc cùng với ứng dụng staticfiles
  • Vẫn được tách ra khi đang ở chế độ phát triển để gỡ lỗi dễ dàng hơn (chỉ biên dịch khi gọi collectstatic?)
  • Làm việc với Require.js (đoán rằng không nên quá khó, nhưng đặt nó vào đây để chắc chắn)

Tín dụng bổ sung

Giải thích cách thực hành tốt nhất để kết hợp giữa Django và Ember/Backbone.

Trả lời

4

Tôi là một người sử dụng hạnh phúc của máy nén django, nó kết hợp, giảm bớt, debug thân thiện, bạn có thể sử dụng nó với staticfiles, dễ dàng để cắm với dung lượng tùy chỉnh phụ trợ (ví dụ. S3)

https://github.com/jezdez/django_compressor

0

Như đã đề cập trong câu trả lời trước, django-compressor là tốt đẹp, nhưng bạn thường nhận được thời gian tải tốt hơn khi sử dụng một bộ tải javascript chuyên dụng thay thế. Tip của tôi là để kiểm tra Head.js ví dụ (http://headjs.com/) (có tấn khác ra khỏi đó là tốt). Thường thì việc kết hợp các tập lệnh có thể mang lại hiệu quả khi xem xét bộ nhớ đệm, sử dụng javascript nằm trên CDN: v.v.

Một điều cần nhớ là Iphone 3/4 sẽ chỉ lưu vào bộ nhớ cache 15/25KB javascript, vì vậy nếu bạn có tập lệnh lớn và kết hợp chúng, bạn có thể gặp rắc rối.

1

Lý do bạn muốn kết hợp nhiều tệp thành một là như vậy để giảm thiểu độ trễ của việc thiết lập và xé các yêu cầu http, bạn càng làm cho càng ít càng tốt. Tuy nhiên, nhiều trình duyệt mới hơn đang tải xuống các tệp JavaScript song song (vẫn thực thi tuần tự). Hậu quả là việc tải xuống một tệp 1Mb đơn lẻ có thể chậm hơn ba tệp 350Kb.

bạn có thể sử dụng từ CDN.

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