Cập nhật dựa trên ý kiến:
Phiên bản ngắn: Nó không quan trọng lắm, nhưng nó có thể phụ thuộc vào những gì họ lưu trữ. Tất cả đều lưu trữ những thứ khác nhau: Google không lưu trữ jQuery.Validate, Microsoft đã không lưu trữ jQuery-UI, kể từ năm 2016 họ làm !!, Microsoft cung cấp các tập lệnh của họ sẽ được phục vụ thông qua ScriptResource.axd
và tích hợp dễ dàng hơn (ví dụ: ScriptManager với ASP. Mạng 4.0 ).
Lưu ý quan trọng: Nếu bạn đang xây dựng một ứng dụng mạng nội bộ, hãy tránh xa phương pháp CDN. Nó không quan trọng của những người lưu trữ nó, trừ khi bạn đang ở trên một rất quá tải máy chủ nội bộ, không có CDN sẽ cung cấp cho bạn hiệu suất hơn 100MB local / 1GB ethernet sẽ. Nếu bạn sử dụng CDN cho một ứng dụng nội bộ nghiêm ngặt, bạn sẽ làm giảm hiệu suất . Đặt chính xác các tiêu đề hết hạn bộ nhớ cache của bạn và bỏ qua các CDN tồn tại trong kịch bản chỉ mạng nội bộ.
Cơ hội hoặc bị chặn dường như là bằng nhau, gần như bằng không. Tôi đã làm việc với các hợp đồng trong đó điều này không đúng, nhưng dường như đó là một ngoại lệ. Ngoài ra, kể từ khi đăng bài gốc của câu trả lời này, bối cảnh xung quanh nó đã thay đổi rất nhiều, Microsoft CDN đã có nhiều tiến bộ.
Dự án tôi hiện đang sử dụng cả hai CDN hoạt động tốt nhất cho giải pháp của chúng tôi. Một số yếu tố đóng vai trò này. Người dùng có một trình duyệt cũ hơn vẫn có thể thực hiện 2 yêu cầu đồng thời cho mỗi tên miền theo khuyến nghị của đặc tả HTTP . Đây không phải là vấn đề đối với bất kỳ ai chạy bất kỳ thứ gì mới, hỗ trợ pipelining (mọi trình duyệt hiện tại), nhưng dựa trên một yếu tố khác, chúng tôi cũng sẽ loại bỏ giới hạn này, ít nhất là cho đến javascript.
CDN của Google chúng tôi đang sử dụng cho:
CDN của Microsoft chúng tôi đang sử dụng cho:
Máy chủ của chúng tôi:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Do một phần của quá trình xây dựng của chúng tôi là kết hợp và thu nhỏ tất cả javascript tùy chỉnh, chúng tôi thực hiện điều này thông qua trình quản lý tập lệnh tùy chỉnh bao gồm các phiên bản phát hành hoặc gỡ lỗi (không rút gọn) của các tập lệnh này tùy thuộc vào bản dựng. Vì Google không lưu trữ gói xác thực jQuery, đây có thể là một mặt trái. MVC bao gồm / sử dụng điều này trong bản phát hành 2.0 của họ, vì vậy bạn có thể hoàn toàn dựa vào CDN của Microsoft cho tất cả các nhu cầu của bạn và tất cả đều tự động thông qua ScriptManager .
Đối số duy nhất khác được đưa ra là thời gian DNS, có một chi phí cho điều này về tốc độ tải trang. Trung bình: Đơn giản vì nó được sử dụng nhiều hơn (nó tồn tại lâu hơn) ajax.googleapis.com
có khả năng được DNS trả về sớm hơn ajax.microsoft.com
, đơn giản vì máy chủ DNS cục bộ có nhiều khả năng nhận được yêu cầu cho nó (đây là người dùng đầu tiên trong hình phạt khu vực) . Đây là một điều rất nhỏ và chỉ nên được xem xét nếu hiệu suất là cực kỳ quan trọng, xuống đến mili giây.
(Có: Tôi nhận thấy điểm này trái với việc tôi sử dụng cả hai CDN, nhưng trong trường hợp của chúng tôi, thời gian DNS bị lu mờ rất nhiều bởi thời gian chờ đợi trên javascript / chặn xảy ra)
Cuối cùng, nếu bạn chưa xem nó, một trong những công cụ tốt nhất hiện có là Fireorms và một số plugin cho nó: Tốc độ trang và YSlow . Nếu bạn sử dụng CDN nhưng các trang của bạn luôn yêu cầu hình ảnh vì không có tiêu đề bộ đệm, bạn đang thiếu trái cây treo thấp. Bảng điều khiển Net của Fireorms có thể nhanh chóng cung cấp cho bạn bảng phân tích nhanh về thời gian tải trang của bạn và Tốc độ trang / YSlow có thể cung cấp một số đề xuất tốt để trợ giúp.