Điều này có thể rõ ràng với một số người, nhưng tôi đã tự hỏi: tại sao tôi nên phụ thuộc vào máy chủ của Google để lưu trữ jQuery cho trang web của mình?
Có phải chỉ vì nó tải nhanh hơn theo cách này?
Điều này có thể rõ ràng với một số người, nhưng tôi đã tự hỏi: tại sao tôi nên phụ thuộc vào máy chủ của Google để lưu trữ jQuery cho trang web của mình?
Có phải chỉ vì nó tải nhanh hơn theo cách này?
Câu trả lời:
Điều này là do:
Có một số tình huống khi bạn có thể không muốn sử dụng jQuery từ CDN của Google:
Khi bạn đang xây dựng một ứng dụng mạng nội bộ nơi máy chủ web được lưu trữ trên cùng một mạng với các máy khách. Nếu bạn sử dụng jQuery CDN của Google, bạn sẽ thực hiện cuộc gọi tới internet chứ không phải là máy chủ web trên mạng cục bộ. Điều này làm tăng băng thông cho tổ chức của bạn và chậm hơn.
Khi bạn muốn chạy ứng dụng của mình nhé . (Khá liên quan đến vấn đề đầu tiên) Nếu bạn cần làm việc trên môi trường phát triển (ví dụ như được quản lý bằng Bower ), bạn có thể cần phải làm cho ứng dụng của mình hoạt động mà không cần kết nối internet (ví dụ: trong một chuyến tàu :)
Khi bạn cần tùy chỉnh nó . Ví dụ: nếu bạn sử dụng Grunt để xây dựng thư viện để chỉ sử dụng một số mô-đun nhất định hoặc đặt tên AMD
Khi bạn đang phục vụ các trang qua SSL yêu cầu jQuery. Bạn nên phục vụ JavaScript qua SSL cũng như trang của bạn để tránh các vấn đề và cảnh báo bảo mật.
Ngoài ra, Microsoft lưu trữ jQuery trên CDN của họ. Đó là một lựa chọn khác có thể so sánh với việc sử dụng jQuery được lưu trữ của Google.
src="//ajax.googleapis.com/..."
, làm việc.
Nghiên cứu này của TJ VanToll đã thuyết phục tôi rằng tốt hơn là kết hợp jQuery với các tập lệnh khác thay vì tải nó từ CDN.
Lý do là độ trễ liên quan đến tìm nạp jQuery trên thiết bị di động:
"Vào năm 2012, thời gian RTT trung bình trên mạng di động ở Hoa Kỳ là 344ms. Và 344ms đó không chỉ áp dụng cho mọi yêu cầu HTTP - mà trang web trung bình hiện thực hiện 93 - mà còn cả tra cứu DNS và kết nối TCP ... Trong khi các RTT trung bình đang được cải thiện, chỉ có những lợi ích bổ sung nhỏ cần có, vì các mạng hiện tại nằm trong một yếu tố nhỏ của giới hạn lý thuyết được quy định bởi vật lý. "
Ông cũng trích dẫn bài đăng này từ Steve Souder cho thấy lý do tại sao bạn thực sự không có khả năng nhận được lợi ích bộ đệm từ việc sử dụng CDN:
"Do sự phân mảnh trong các nhà cung cấp CDN, các phiên bản jQuery và sử dụng giao thức (http so với https), nên khả năng bị tấn công bộ đệm CDN là rất thấp - và tải xuống từ một miền bên ngoài có khả năng thực hiện không phải một, mà là ba các chuyến đi khứ hồi (tra cứu DNS, kết nối TCP và HTTP GET). "
Lợi ích lớn nhất là từ bộ nhớ đệm. Lý thuyết là nếu khách truy cập đã truy cập trang web đang tải thư viện JavaScript của họ, ví dụ jQuery từ Google CDN, thì khi họ truy cập trang web của bạn, thư viện đã có trong bộ đệm của trình duyệt của người dùng đó và sẽ không phải tải xuống lại . Điều này nghe có vẻ tuyệt vời trong lý thuyết.
Những lợi ích đang được chia sẻ ở đây và những nơi khác đều là lý thuyết. Chỉ cần đi qua một phân tích chuyên sâu về việc sử dụng CDN và nếu nó cung cấp các lợi ích hiệu suất mong đợi. http://www.root777.com/appdev/does-USE-google-lologists-api-cdn-give-you-performance-benefits
Một lý do chính KHÔNG để Google lưu trữ jQuery của bạn, một lý do mà nhiều người không nghĩ tới, đó là nó sẽ không tải xuống nếu bạn ở Trung Quốc. Nó bị chặn cùng với nhiều tập lệnh, phông chữ khác, v.v ... được lưu trữ bởi Google CDN. Nếu bạn cần tiếp cận đối tượng người Trung Quốc, tốt nhất bạn luôn luôn sử dụng dịch vụ lưu trữ được lưu trữ trên máy chủ của riêng bạn. Google APIS bị chặn ở Trung Quốc
Một số câu trả lời hay ở đây là "Tại sao bạn nên ..." và "Tại sao bạn không nên ..."
Tôi chỉ đơn giản muốn thêm một danh sách các lựa chọn thay thế cho Google nếu bạn muốn tải jQuery từ CDN.
Nhưng để tóm tắt, về cơ bản, bạn đang cải thiện hiệu suất trang web / ứng dụng tổng thể của mình.
Sử dụng CDN với Công nhân dịch vụ, bạn có thể tải xuống CDN một lần trong vòng đời của khách hàng và không phải mỗi khi bạn cập nhật mã của mình.