2014-04-22 13 views
49

Có cách nào để giảm bớt những điều sau đây bao gồm xuống một không?Google CDN cho phụ thuộc góc?

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-route.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-sanitize.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-animate.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-cookies.min.js"></script> 

Tôi không thể tìm thấy phiên bản kết hợp của các tệp này được lưu trữ trên CDN của Google.

+0

+1 Tôi chưa từng thấy ... rất quan tâm đến câu trả lời này. – Nix

+2

Tôi biết điều này không liên quan, nhưng làm cách nào bạn tìm thấy tất cả các URL CDN đó? Trang "Thư viện được lưu trữ" của Google dường như không liệt kê bất kỳ điều gì khác ngoài thư viện góc chính. – twiz

+4

@twiz theo bài đăng blog thông báo Angular CDN của Google, bạn có thể tìm các url không được rút gọn và mô-đun cho phiên bản góc cạnh: https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/MANIFEST (thay thế số phiên bản bằng phiên bản bạn chọn). Tôi cho rằng việc thêm vào trang web chính là quá nhiều rắc rối cho họ lol. –

Trả lời

15

Tôi đã tự tìm kiếm một gói, nhưng chưa tìm thấy gói nào. Dường như với tôi bạn phải bó chúng bằng tay nếu bạn muốn có tất cả trong một js. tập tin.


Tôi đã suy nghĩ về việc tạo một tác vụ grunt (hoặc tương tự) để tìm nạp tất cả các phụ thuộc và hợp nhất chúng thành một tệp. Tôi biết bạn muốn sử dụng CDN, nhưng chỉ muốn chia sẻ suy nghĩ đó.

cập nhật
Đối với bất cứ ai quan tâm đến việc sau này, chỉ cần đi qua grunt-fetch-from-cdn plugin này. Chưa thử nó, nhưng có vẻ thú vị.

7

Tôi cho rằng lợi ích chính của CDN là cho mọi người sử dụng cùng một tệp, do đó cho phép lưu bộ nhớ đệm để loại bỏ nhu cầu tải tệp cho hầu hết khách truy cập do việc sử dụng rộng rãi trên các trang web khác.

Có lẽ, số hoán vị cần thiết để gói các cấu hình khác nhau của phụ thuộc góc sẽ hoàn toàn phủ nhận lợi ích này, và bạn nên đóng gói gói với tất cả các JS khác của bạn cho số lượng yêu cầu thấp nhất và tự phục vụ .

Tuy nhiên, nó không có vẻ như thể cập nhật góc khá thường xuyên mà, trong khi tốt cho sửa lỗi, có nghĩa là có lẽ nhiều phiên bản khác nhau (và do đó file) được sử dụng trong môi trường sản xuất tại thời điểm này. Điều này cũng sẽ làm giảm lợi ích của bộ nhớ đệm trên các trang web khác nhau.

Khi nghi ngờ, hãy kiểm tra cả hai phương pháp trên các thiết bị từ bạn bè/gia đình/cơ quan/v.v. đã thấy việc sử dụng internet bình thường trên các trang web khác với trang web của riêng bạn. Tôi sẽ đoán rằng trong hầu hết các trường hợp, sẽ thông minh hơn khi chỉ bao gồm liên kết CDN của từng mô-đun riêng biệt như bạn đã làm ở trên và để cho bộ nhớ đệm chăm sóc giảm số lượng yêu cầu thực tế. Nếu điều đó trở thành thực tế phổ biến thì số lượng tệp bổ sung sẽ không ảnh hưởng nhiều đến thời gian tải.

+0

Đây là một trong những phân tích tốt nhất mà tôi đã tìm thấy về lợi ích của việc chia sẻ CDN: http: //www.stevesouders.com/blog/2013/03/18/http-archive-jquery/ –

2

Tôi đồng ý với Colt, nhưng những điều sau đây có thể hữu ích nếu được sử dụng một cách khôn ngoan (xem "Load nhiều file với một yêu cầu HTTP đơn"): JSDelivr

2

Hoặc bạn có thể sử dụng ngụm nhiệm vụ để xây dựng chúng thành một tập lệnh duy nhất hoặc bạn có thể sử dụng bower để cài đặt các phụ thuộc này cùng một lúc.

+0

cải thiện câu trả lời của bạn bằng cách chỉnh sửa câu trả lời. –

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