Versi jQuery terbaru di CDN Google

103

Saya membaca di dokumen resmi Google CDN bahwa ini adalah srcuntuk jQuery:

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

Namun, menjengkelkan harus mengubah srcreferensi jQuery saya di setiap pembaruan versi.

Saya telah menemukan bahwa jika saya mengatur versinya ke 1maka Google mengembalikan versi terbaru jQuery.

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

Apakah ini hal yang benar untuk dilakukan? Apakah ada URL resmi untuk mereferensikan versi terbaru jQuery yang dihosting di Google CDN?

Martin Borthiry
sumber
periksa apakah posting ini lebih lama. Jadi, yang lainnya adalah duplikatnya
Martin Borthiry
1
Ini adalah duplikat stackoverflow.com/questions/441412/… (ditanyakan pada 14-Jan-2009)
Nick Pierpoint
1
@ArtinBorthiry Itu tidak terlalu penting
Blazemonger

Jawaban:

182

UPDATE 7/3/2014: Mulai sekarang, jquery-latest.jstidak lagi diperbarui. Dari blog jQuery :

Kami tahu http://code.jquery.com/jquery-latest.js disalahgunakan karena statistik CDN menunjukkan bahwa itu adalah file yang paling populer. Itu tidak akan menjadi masalah jika itu hanya digunakan oleh pengembang untuk membuat salinan lokal.

Kami telah memutuskan untuk berhenti memperbarui file ini, serta salinan yang diperkecil, menyimpan kedua file di versi 1.11.1 selamanya.

Tim Google CDN telah bergabung dengan kami dalam upaya ini untuk mencegah kerusakan web yang tidak disengaja dan tidak lagi memperbarui file di http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js . File itu juga akan tetap terkunci di versi 1.11.1.

Jawaban berikut, yang sekarang diperdebatkan, disimpan di sini karena alasan historis.


Jangan lakukan ini. Serius, jangan.

Menautkan ke versi utama jQuery memang berfungsi, tetapi itu ide yang buruk - semua fitur baru ditambahkan dan tidak digunakan lagi dengan setiap pembaruan desimal. Jika Anda memperbarui jQuery secara otomatis tanpa menguji kode Anda SEPENUHNYA , Anda berisiko mengalami kejutan yang tidak terduga jika API untuk beberapa metode penting telah berubah.

Inilah yang harus Anda lakukan: tulis kode Anda menggunakan versi terbaru jQuery. Uji, debug, publikasikan jika sudah siap untuk produksi.

Kemudian, ketika versi baru jQuery diluncurkan, tanyakan pada diri Anda: Apakah saya memerlukan versi baru ini dalam kode saya? Misalnya, apakah ada beberapa kompatibilitas browser penting yang tidak ada sebelumnya, atau apakah itu akan mempercepat kode saya di sebagian besar browser?

Jika jawabannya "tidak", jangan repot-repot mengupdate kode Anda ke versi jQuery terbaru. Melakukannya bahkan dapat menambahkan kesalahan BARU ke kode Anda yang sebelumnya tidak ada . Tidak ada pengembang yang bertanggung jawab yang secara otomatis memasukkan kode baru dari situs lain tanpa mengujinya secara menyeluruh.

Tidak ada alasan yang baik untuk SELALU menggunakan versi terbaru jQuery. Versi lama masih tersedia di CDN, dan jika berfungsi untuk tujuan Anda, mengapa repot-repot menggantinya?


Masalah sekunder, tetapi mungkin lebih penting, adalah penyimpanan cache. Banyak orang menautkan ke jQuery di CDN karena banyak situs lain melakukannya, dan pengguna Anda memiliki peluang bagus untuk memiliki versi tersebut sudah di-cache.

Masalahnya, caching hanya berfungsi jika Anda memberikan nomor versi lengkap . Jika Anda memberikan nomor versi parsial, cache di masa mendatang tidak akan terjadi - karena jika demikian, beberapa pengguna akan mendapatkan versi minor jQuery yang berbeda dari URL yang sama. (Katakanlah bahwa tautan ke 1.7 menunjuk ke 1.7.1 satu hari dan 1.7.2 hari berikutnya. Bagaimana browser memastikan bahwa ia mendapatkan versi terbaru hari ini? Jawaban: tidak ada cache.)

Faktanya, inilah rincian beberapa opsi dan pengaturan kedaluwarsa mereka ...

http://code.jquery.com/jquery-latest.min.js (tanpa cache)

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

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

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 tahun)

Jadi, dengan menautkan ke jQuery dengan cara ini, Anda sebenarnya menghilangkan salah satu alasan utama untuk menggunakan CDN.


http://code.jquery.com/jquery-latest.min.js mungkin juga tidak selalu memberikan versi yang Anda harapkan. Pada tulisan ini, ini tertaut ke versi terbaru jQuery 1.x, meskipun jQuery 2.x juga telah dirilis. Ini karena jQuery 1.x kompatibel dengan browser lama termasuk IE 6/7/8, dan jQuery 2.x tidak . Jika Anda menginginkan versi terbaru jQuery 2.x, maka (untuk saat ini) Anda perlu menentukannya secara eksplisit.

Kedua versi tersebut memiliki API yang sama, jadi tidak ada perbedaan persepsi untuk browser yang kompatibel. Namun, jQuery 1.x adalah unduhan yang lebih besar dari 2.x.

Blazemonger
sumber
Terima kasih atas sudut pandang Anda, tetapi dalam kasus saya, lebih baik menggunakan versi terbaru. Namun, saya setuju sebagian dengan pendapat Anda, tetapi beberapa versi baru juga memperbaiki bug lama. Selain itu, versi terbaru memiliki kemungkinan lebih besar untuk berada di cache, yang merupakan salah satu keuntungan cdn.
Martin Borthiry
2
Contoh yang bagus dari kejadian ini adalah berkembang di sembarang jquery <1.4 kemudian meningkatkannya melewati 1.4. Ada perubahan dalam mengakses properti dan bagaimana permintaan ajax menangani data JSON di callback.
scrappedcola
hanya untuk memperjelas .. Saya meminta satu halaman yang menggunakan bagian sepele dari jquery ... Saya mengerti maksud Anda, tapi saya hanya ingin tahu apakah google menawarkan url untuk mendapatkan versi terbaru.
Martin Borthiry
4
@scrappedcola - jQuery 1.9 juga memperkenalkan banyak perubahan yang dapat merusak. Saya telah mengalami banyak bug selama bertahun-tahun karena masalah kompatibilitas mundur di jQuery. Dan saya sangat setuju dengan saran Blazemonger. Dalam situasi apa pun, Anda tidak boleh langsung mengarahkan ke URL "jQuery terbaru". Anda akan sepenuhnya bergantung pada tim jQuery, dan rilis jQuery baru dapat dengan mudah merusak situs Anda. Tidak hanya itu bisa terjadi, tetapi kemungkinan akan terjadi di beberapa titik.
Steve Wortham
senang mengetahui bahwa cache didasarkan pada tingkat detail versi!
Tadas V.
8

Saya tidak tahu apakah / di mana itu dipublikasikan, tetapi Anda bisa mendapatkan rilis terbaru dengan menghilangkan nomor minor dan build.

1.8.x terbaru:

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

1.x terbaru:

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

Namun, harap diingat bahwa tautan ini memiliki waktu tunggu cache yang jauh lebih pendek daripada dengan nomor versi lengkap, jadi pengguna Anda mungkin mengunduhnya lebih dari yang Anda inginkan. Lihat The .0 penting dalam referensi Google CDN ke jQuery 1.x.0 untuk informasi lebih lanjut.

jrummell
sumber
1
Sebagai alternatif, Anda bisa mendapatkan rilis terbaru dari code.jquery.com/jquery.min.js yang biasanya diperbarui beberapa hari sebelum cdns lainnya
Kevin B
Meskipun Anda dapat menarik 1.8.x terbaru dengan cara itu, Anda tidak dapat menarik 1.9 terbaru atau nomor versi minor apa pun setelahnya dengan tautan serupa. Selain itu, tautan "terbaru 1.x" saat ini mengarah ke 1.11.1 sedangkan yang terbaru sebenarnya adalah 1.11.3.
Blazemonger
@Blazemonger Itu benar. Ini berubah setelah saya menjawab ini. Anda memiliki penjelasan bagus dalam pembaruan Anda!
jrummell
8

Jika Anda ingin menggunakan jQuery CDN selain pustaka jQuery yang dihosting Google, Anda dapat mempertimbangkan untuk menggunakan ini dan memastikan menggunakan versi terbaru jQuery:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Abdul Munim
sumber
Ini menarik 1.9.1 bukannya 2.0
Phillip Senn
3
v2.x tidak kompatibel dengan v1.x. Setiap situs yang mengarah ke url ini sebenarnya akan mengacaukan situs jika diperbarui ke v2
Abdul Munim
2

Untuk menggunakan versi jquery terbaru yang dihosting oleh Google

Manusia:

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

  2. Dapatkan cuplikannya:

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

  1. Masukkan ke dalam kode Anda.
  2. Pastikan itu berhasil.

Bot:

  1. Tunggu sampai manusia melakukannya.
Bob Stein
sumber