Phiên bản jQuery mới nhất trên CDN của Google


103

Tôi đọc trong tài liệu chính thức của Google CDN rằng đây là tài liệu srccho jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

Tuy nhiên, thật khó chịu khi phải thay đổi srctham chiếu jQuery của tôi ở mỗi lần cập nhật phiên bản.

Tôi nhận thấy rằng nếu tôi đặt phiên bản thành 1thì Google sẽ trả về phiên bản jQuery mới nhất.

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */

Đây có phải là điều đúng để làm gì? Có URL chính thức nào để tham chiếu đến phiên bản jQuery mới nhất được lưu trữ trên Google CDN không?


kiểm tra xem bài đăng này có cũ hơn không. Vì vậy, người còn lại là bản sao
Martin Borthiry

1
Đây là bản sao của stackoverflow.com/questions/441412/… (được hỏi vào ngày 14 tháng 1 năm 2009)
Nick Pierpoint

Câu trả lời:


182

CẬP NHẬT 7/3/2014: Hiện tại, jquery-latest.jskhông còn được cập nhật. Từ blog jQuery :

Chúng tôi biết rằng http://code.jquery.com/jquery-latest.js bị lạm dụng vì thống kê CDN cho thấy đây là tệp phổ biến nhất. Điều đó sẽ không xảy ra nếu nó chỉ được các nhà phát triển sử dụng để tạo một bản sao cục bộ.

Chúng tôi đã quyết định ngừng cập nhật tệp này, cũng như bản sao được rút gọn, giữ cả hai tệp ở phiên bản 1.11.1 mãi mãi.

Nhóm CDN của Google đã tham gia cùng chúng tôi trong nỗ lực này nhằm ngăn chặn sự cố web vô ý và không cập nhật tệp nữa tại http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js . Tệp đó cũng sẽ bị khóa ở phiên bản 1.11.1.

Câu trả lời sau đây, bây giờ tranh luận, được lưu giữ ở đây vì lý do lịch sử.


Đừng làm điều này. Nghiêm túc đấy, đừng.

Liên kết với các phiên bản chính của jQuery hoạt động, nhưng đó là một ý tưởng tồi - các tính năng hoàn toàn mới được thêm vào và không được dùng nữa với mỗi bản cập nhật thập phân. Nếu bạn cập nhật jQuery tự động mà không kiểm tra mã HOÀN TOÀN , bạn có nguy cơ gặp phải bất ngờ không mong muốn nếu API cho một số phương pháp quan trọng đã thay đổi.

Đây là những gì bạn nên làm: viết mã của bạn bằng cách sử dụng phiên bản jQuery mới nhất. Kiểm tra nó, gỡ lỗi nó, xuất bản nó khi nó sẵn sàng để sản xuất.

Sau đó, khi phiên bản jQuery mới ra mắt, hãy tự hỏi: Tôi có cần phiên bản mới này trong mã của mình không? Ví dụ: có một số khả năng tương thích trình duyệt quan trọng không tồn tại trước đây hay nó sẽ tăng tốc mã của tôi trong hầu hết các trình duyệt?

Nếu câu trả lời là "không", đừng bận tâm cập nhật mã của bạn lên phiên bản jQuery mới nhất. Làm như vậy thậm chí có thể thêm lỗi MỚI cho mã của bạn mà trước đây không tồn tại . Không có nhà phát triển có trách nhiệm nào sẽ tự động đưa mã mới từ một trang web khác mà không kiểm tra kỹ lưỡng.

Đơn giản là không có lý do chính đáng để LUÔN sử dụng phiên bản jQuery mới nhất. Các phiên bản cũ vẫn có sẵn trên CDN và nếu chúng hoạt động cho mục đích của bạn, thì tại sao phải thay thế chúng?


Một vấn đề thứ yếu, nhưng có thể quan trọng hơn, là bộ nhớ đệm. Nhiều người liên kết đến jQuery trên CDN vì nhiều trang khác cũng vậy và người dùng của bạn có cơ hội tốt để có phiên bản đó đã được lưu trong bộ nhớ cache.

Vấn đề là, bộ nhớ đệm chỉ hoạt động nếu bạn cung cấp số phiên bản đầy đủ . Nếu bạn cung cấp một phần số phiên bản, thì việc lưu vào bộ nhớ đệm trong tương lai xa sẽ không xảy ra - vì nếu có, một số người dùng sẽ nhận được các phiên bản nhỏ khác nhau của jQuery từ cùng một URL. (Giả sử rằng liên kết đến 1,7 điểm đến 1,7,1 vào một ngày và 1,7,2 vào ngày hôm sau. Làm cách nào để trình duyệt đảm bảo rằng nó đang nhận được phiên bản mới nhất hôm nay? Trả lời: không có bộ nhớ đệm.)

Trên thực tế, đây là bảng phân tích một số tùy chọn và cài đặt hết hạn của chúng ...

http://code.jquery.com/jquery-latest.min.js (không có bộ nhớ cache)

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js (1 giờ)

http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js (1 giờ)

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 năm)

Vì vậy, bằng cách liên kết với jQuery theo cách này, bạn đang thực sự loại bỏ một trong những lý do chính để sử dụng CDN ngay từ đầu.


http://code.jquery.com/jquery-latest.min.js có thể không phải lúc nào cũng cung cấp cho bạn phiên bản bạn mong đợi. Theo bài viết này, nó liên kết đến phiên bản mới nhất của jQuery 1.x, mặc dù jQuery 2.x cũng đã được phát hành. Điều này là do jQuery 1.x tương thích với các trình duyệt cũ hơn bao gồm IE 6/7/8, còn jQuery 2.x thì không . Nếu bạn muốn có phiên bản jQuery 2.x mới nhất, thì (hiện tại) bạn cần chỉ định điều đó một cách rõ ràng.

Hai phiên bản có cùng một API, vì vậy không có sự khác biệt về mặt cảm nhận đối với các trình duyệt tương thích. Tuy nhiên, jQuery 1.x là bản tải xuống lớn hơn 2.x.


Cảm ơn bạn đã cho quan điểm của bạn, nhưng trong trường hợp của tôi, tốt hơn là sử dụng phiên bản mới nhất. tuy nhiên, tôi đồng ý một phần với ý kiến ​​của bạn, nhưng một số phiên bản mới cũng sửa các lỗi cũ. Ngoài ra, phiên bản mới nhất có nhiều khả năng nằm trong bộ nhớ cache hơn, đó là một trong những lợi ích của cdn.
Martin Borthiry

2
một ví dụ điển hình về việc này đang phát triển trong bất kỳ jquery nào <1,4 sau đó nâng cấp quá khứ 1,4. Đã có những thay đổi trong việc truy cập thuộc tính và cách yêu cầu ajax xử lý dữ liệu JSON trong lệnh gọi lại.
scrappedcola

chỉ để làm rõ .. Tôi đã yêu cầu một trang duy nhất sử dụng một phần nhỏ của jquery ... Tôi hiểu điểm tốt của bạn, nhưng tôi chỉ muốn biết liệu google có cung cấp url để tải phiên bản mới nhất hay không.
Martin Borthiry

4
@scrappedcola - jQuery 1.9 cũng đã giới thiệu rất nhiều thay đổi đột phá. Tôi đã gặp phải rất nhiều lỗi trong nhiều năm do vấn đề tương thích ngược trong jQuery. Và tôi hoàn toàn đồng ý với lời khuyên của Blazemonger. Trong mọi trường hợp, bạn chỉ nên trỏ đến URL "jQuery mới nhất". Bạn sẽ hoàn toàn được sự giúp đỡ của nhóm jQuery và bản phát hành jQuery mới có thể dễ dàng phá vỡ trang web của bạn. Nó không chỉ có thể xảy ra mà còn có thể sẽ xảy ra vào một lúc nào đó.
Steve Wortham

rất vui khi biết rằng bộ nhớ đệm dựa trên mức độ chi tiết của phiên bản!
Tadas V.

8

Tôi không biết nó được xuất bản ở đâu / nhưng bạn có thể nhận được bản phát hành mới nhất bằng cách bỏ qua số phụ và số bản dựng.

1.8.x mới nhất:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>

1.x mới nhất:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Tuy nhiên, hãy nhớ rằng các liên kết này có thời gian chờ trong bộ nhớ cache ngắn hơn nhiều so với số phiên bản đầy đủ, vì vậy người dùng của bạn có thể tải xuống chúng nhiều hơn bạn muốn. Xem phần .0 quan trọng trong Google CDN tham chiếu đến jQuery 1.x.0 để biết thêm thông tin.


1
Ngoài ra, bạn có thể tải bản phát hành mới nhất từ code.jquery.com/jquery.min.js, nó thường được cập nhật vài ngày trước các cdns khác
Kevin B

Mặc dù bạn có thể kéo lên 1.8.x mới nhất theo cách đó, bạn không thể kéo lên 1.9 mới nhất hoặc bất kỳ số phiên bản nhỏ nào sau đó bằng các liên kết tương tự. Ngoài ra, liên kết "1.x mới nhất" hiện trỏ đến 1.11.1 khi mới nhất thực sự là 1.11.3.
Blazemonger

@Blazemonger Đúng vậy. Điều này đã thay đổi sau khi tôi trả lời điều này. Bạn có một lời giải thích tuyệt vời trong bản cập nhật của bạn!
jrummell

8

Nếu bạn muốn sử dụng jQuery CDN ngoài thư viện jQuery được lưu trữ trên Google, bạn có thể cân nhắc sử dụng cái này và đảm bảo sử dụng phiên bản jQuery mới nhất:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

Điều này đã kéo lên 1.9.1 thay vì 2.0
Phillip Senn

3
v2.x không tương thích với v1.x. Bất kỳ trang web nào trỏ đến url này sẽ thực sự làm hỏng các trang web nếu nó được cập nhật lên v2
Abdul Munim


2

Để sử dụng phiên bản jquery mới nhất do Google lưu trữ

Con người:

  1. https://developers.google.com/speed/libraries/#jquery

  2. Lấy đoạn mã:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  1. Đặt nó vào mã của bạn.
  2. Hãy chắc chắn rằng nó hoạt động.

Bots:

  1. Chờ một con người làm điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.