Câu trả lời:
Có hai lợi ích chính khi sử dụng CDN bên ngoài như Google để lưu trữ jQuery:
Nhược điểm tiềm năng:
Một nhược điểm khác:
Sử dụng CDN cho phép người vận hành CDN theo dõi khách truy cập trang web. Đó là lý do tại sao họ không tốn tiền.
Sử dụng (các) CDN để loại bỏ sự phụ thuộc của bạn trên nhiều máy chủ như thế này về bản chất thể hiện sự đánh đổi giữa băng thông và độ trễ, giả sử bạn chỉ quan tâm đến hiệu suất.
Tôi tình cờ cho rằng giải pháp thay thế không chỉ đơn giản là lưu trữ cục bộ, mà kết hợp nó với một yêu cầu địa phương khác - thường không có lý do chính đáng nào để không kết nối khi bạn có thể.
Nếu băng thông là vô hạn, thì tốt nhất bạn KHÔNG nên tránh, vì bạn sẽ chậm như dịch vụ chậm nhất của mình - vì độ trễ không thể dự đoán hoàn hảo, với đủ dịch vụ, ngay cả khi chúng nhanh, bạn chỉ cần một chút không may mắn gây ra tải trang chậm.
Nếu độ trễ bằng 0, thì việc truyền tải của bạn qua nhiều máy chủ có thể cải thiện băng thông bằng cách sử dụng nhiều máy chủ (không hữu ích vì có thể giới hạn băng thông ở gần máy khách, không phải máy chủ), nhưng quan trọng hơn, nó có thể giảm lượng dữ liệu được truyền một chút bằng cách tăng hiệu quả của bộ nhớ đệm.
Nó phụ thuộc vào kịch bản của bạn, nhưng tôi thường mong đợi độ trễ sẽ là vấn đề nhiều hơn băng thông, trừ khi các tập lệnh của bạn cực kỳ lớn (điều mà jquery không phải là). Tại thời điểm đó, thường là nhanh hơn để lưu trữ jquery như là một phần của tệp cục bộ được nối.
Các lý do không lưu trữ cục bộ là ví dụ: khi bạn trả tiền cho băng thông hoặc bạn đang lưu trữ trên một số máy chủ chậm (kết nối của bạn với máy khách bị tắc nghẽn ở phía bạn chứ không phải của khách hàng) hoặc bạn biết rằng khách hàng của bạn sẽ có băng thông thực sự thấp (dsl hoặc modem cấp thấp, giả sử - điện thoại di động có xu hướng có nhiều vấn đề về độ trễ hơn so với vấn đề băng thông) hoặc khách hàng của bạn trả tiền cho băng thông (ví dụ như điện thoại di động) và các tập lệnh là một phần đáng chú ý trong đó bộ nhớ đệm nhỏ sẽ chiến thắng (không có khả năng ).
Trong mọi trường hợp: có liên quan hơn nhiều sẽ là liệu bạn đã bao quát những điều cơ bản trước chưa; các tiêu đề bộ nhớ đệm thích hợp, nối, thu nhỏ và gzipping (tốt nhất là với tỷ lệ nén cao). Và đây là mấu chốt: nếu bạn KHÔNG làm điều đó, thì ít nhất CDN sẽ làm được, vì vậy, đó là chiến thắng ...
TL; DR: Nếu bạn đã ghép nối + thu nhỏ + gzipping + lưu vào bộ nhớ cache, thì việc phục vụ các tập lệnh nhỏ cục bộ nhanh hơn từ CDN mặc dù hiệu suất tốt hơn của CDN - nhưng chỉ khi bạn đã hoàn thành bài tập về nhà, có thể không ở trang đầu tiên tải, và chắc chắn có ngoại lệ cho quy tắc này.
Sử dụng thư viện lưu trữ jQuery của Google cho phép trang của bạn được tải nhanh hơn. Thật vậy, thư viện được tải cùng lúc với trang của bạn thay vì sau đó.