Dari mana Anda memasukkan perpustakaan jQuery? Google JSAPI? CDN?

242

Ada beberapa cara untuk memasukkan jQuery dan jQuery UI dan saya ingin tahu apa yang digunakan orang?

  • Google JSAPI
  • situs jQuery
  • situs / server Anda sendiri
  • CDN lain

Saya baru-baru ini menggunakan Google JSAPI, tetapi ternyata butuh waktu lama untuk menyiapkan koneksi SSL atau bahkan hanya untuk menyelesaikan google.com. Saya telah menggunakan yang berikut untuk Google:

<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>

Saya suka gagasan menggunakan Google sehingga di-cache ketika mengunjungi situs lain dan untuk menghemat bandwidth dari server kami, tetapi jika terus menjadi bagian lambat dari situs, saya dapat mengubah termasuk.

Apa yang kamu gunakan? Apakah Anda punya masalah?

Sunting: Baru saja mengunjungi situs jQuery dan mereka menggunakan metode berikut:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Edit2: Begini cara saya memasukkan jQuery tanpa masalah selama setahun terakhir:

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

Perbedaannya adalah penghapusan http:. Dengan menghapus ini, Anda tidak perlu khawatir tentang beralih antara http dan https.

Darryl Hein
sumber
8
Darryl, edit hebat. Bolehkah saya menyarankan Anda memindahkan suntingan Anda ke atas halaman dan mengubahnya menjadi srcsintaksis yang lebih sederhana / lebih aman / lebih cepat yang Anda gunakan sekarang? Jawaban Anda pada dasarnya sudah kanonik dan kedua perubahan itu akan membantu orang mendapatkan apa yang mereka dapatkan dengan cepat.
Josh Smith

Jawaban:

153

Tanpa ragu saya memilih agar JQuery dilayani oleh server Google API. Saya tidak menggunakan metode jsapi karena saya tidak memanfaatkan API Google lainnya, namun jika itu berubah maka saya akan mempertimbangkannya ...

Pertama: Server Google api didistribusikan di seluruh dunia alih-alih lokasi server tunggal saya: Server yang lebih dekat biasanya berarti waktu respons yang lebih cepat bagi pengunjung.

Kedua: Banyak orang memilih untuk meng-host JQuery di Google, jadi ketika pengunjung datang ke situs saya, mereka mungkin sudah memiliki skrip JQuery di cache lokal mereka. Konten pra-tembolok biasanya berarti waktu muat yang lebih cepat bagi pengunjung.

Ketiga: Perusahaan web hosting saya menagih saya untuk bandwidth yang digunakan. Tidak masuk akal menghabiskan 18k per sesi pengguna jika pengunjung bisa mendapatkan file yang sama di tempat lain.

Saya mengerti bahwa saya menaruh sebagian kepercayaan pada Google untuk menyajikan file skrip yang benar, dan untuk online dan tersedia. Sampai saat ini saya belum kecewa dengan menggunakan Google dan akan melanjutkan konfigurasi ini sampai masuk akal untuk tidak melakukannya.

Satu hal yang patut ditunjukkan ... Jika Anda memiliki campuran halaman aman dan tidak aman di situs Anda, Anda mungkin ingin mengubah sumber Google secara dinamis untuk menghindari peringatan yang biasa Anda lihat saat memuat konten tidak aman di halaman aman:

Inilah yang saya pikirkan:

<script type="text/javascript">
    document.write([
        "\<script src='",
        ("https:" == document.location.protocol) ? "https://" : "http://",
        "ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>" 
    ].join(''));
</script>

UPDATE 9/8/2010 - Beberapa saran telah dibuat untuk mengurangi kompleksitas kode dengan menghapus HTTP dan HTTPS dan cukup menggunakan sintaks berikut:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

Selain itu Anda juga dapat mengubah url untuk mencerminkan nomor utama jQuery jika Anda ingin memastikan bahwa versi utama terbaru dari perpustakaan jQuery dimuat:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

Terakhir, jika Anda tidak ingin menggunakan Google dan lebih suka jQuery, Anda dapat menggunakan jalur sumber berikut (perlu diingat bahwa jQuery tidak mendukung koneksi SSL):

<script type="text/javascript">
    document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
</script>
Dscoduc
sumber
26
Saya setuju dengan ketiga alasan Anda itulah sebabnya saya memasukkan jquery dari Google di situs produksi saya. Alih-alih injeksi dinamis js untuk halaman SSL, saya hanya mereferensikan url dalam tag skrip tanpa protokol yang ditentukan. Tampaknya bekerja dengan baik untuk saya. <script src = "// ajax.google ..."> </script>
Aaron Wagner
1
Ide yang menarik ... Tetapi jika Anda akan menggunakan keracunan DNS untuk membajak beban JQuery mengapa tidak membajak seluruh permintaan situs? Atau bagaimana dengan skrip Google Analytics?
Dscoduc
9
Saya juga setuju dengan semuanya, kecuali untuk menyederhanakan hal, saya menggunakan format ini: <script src = "// ajax.google ..."> </script>. Maka saya tidak perlu khawatir tentang http atau https. Terima kasih Aaron Wagner untuk itu.
Darryl Hein
11
Saya tidak melihat apa document.write()yang sedang digunakan? sederhana <script src="..."></script>tidak masalah untuk ditempatkan di header. → @ Dscoduc: ← itu tidak akan lebih cepat, itu hanya akan mengambil pesan peringatan itu. Jika situs Anda menggunakan https aman dan Anda menarik dari konten yang tidak disandikan (mis. http://googleapis) Maka Anda akan mendapatkan pesan peringatan itu. Apa yang akan sedikit lebih cepat jika Anda hanya menggunakan http tetapi Anda terhubung https://googleapis, ada sedikit overhead dengan pengkodean "aman". Jadi, menautkan http://googleapisakan menjadi sedikit lebih cepat.
vol7ron
5
Ingat juga bahwa Google akan menggunakan ini untuk melacak situs web yang dikunjungi pengguna. Jadi, jika Anda membuat situs web yang perlu sadar akan privasi, maka hosting beberapa file kecil adalah harga kecil untuk membayar privasi.
Hans-Christoph Steiner
19

Salah satu alasan Anda mungkin ingin meng-host di server eksternal adalah untuk bekerja di sekitar batasan browser koneksi konuren ke server tertentu.

Namun, mengingat bahwa file jQuery yang Anda gunakan kemungkinan tidak akan berubah terlalu sering, cache browser akan masuk dan membuat titik itu bisa diperdebatkan untuk sebagian besar.

Alasan kedua untuk menyimpannya di server eksternal adalah untuk menurunkan lalu lintas ke server Anda sendiri.

Namun, mengingat ukuran jQuery, kemungkinan itu akan menjadi bagian kecil dari lalu lintas Anda. Anda mungkin harus mencoba mengoptimalkan konten Anda yang sebenarnya.

Franci Penov
sumber
1
Alasan lain yang mungkin terjadi adalah pengguna sudah memiliki jquery dari google dalam cache mereka, sehingga mereka bahkan mungkin tidak perlu mengunduhnya saat pertama kali mereka mengunjungi situs Anda.
Kip
14

jQuery 1.3.1 mnt hanya berukuran 18k. Saya pikir itu tidak terlalu menarik untuk ditanyakan pada pemuatan halaman awal. Itu akan di-cache setelah itu. Sebagai hasilnya, saya meng-host-nya sendiri.

Mark Hurd
sumber
7
Saya dengan hormat tidak setuju, berdasarkan alasan yang Anda nyatakan. Jika Anda mendapatkan banyak lalu lintas, maka 18k per sesi dapat dengan cepat menambah jumlah lalu lintas yang cukup besar. Terutama jika web hosting Anda dikenai biaya oleh bandwidth yang digunakan ...
Dscoduc
1
Pandangan saya adalah itu hanya menjadi perhatian jika pengunjung Anda hanya melihat satu halaman. Jika profil Anda lebih sedikit pengunjung & banyak tampilan halaman, maka biaya overhead minimal ketika menyebar melintasi tampilan halaman per pengunjung. Ditto untuk pengunjung yang kembali.
Kristen
2
kecuali situs web Anda benar-benar kecil, 18k akan selalu menjadi sebagian kecil dari lalu lintas Anda.
Hans-Christoph Steiner
14

Jika Anda ingin menggunakan Google, tautan langsung mungkin lebih responsif. Setiap perpustakaan memiliki jalur yang terdaftar untuk file langsung. Ini adalah jalur jQuery

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

Baca ulang pertanyaan Anda, apakah ada alasan Anda menggunakan https? Ini adalah tag skrip daftar Google dalam contoh mereka

<script src="http://www.google.com/jsapi"></script>
Philip Tinney
sumber
3
Menggunakan HTTPS karena situs ini adalah HTTPS, jadi agak harus.
Darryl Hein
1
Semua konten Anda berbasis https, atau hanya sebagian saja?
Dscoduc
2
Tautan http di situs https menjengkelkan karena IE (setidaknya secara default) mengganggu Anda dengan gangguan "Situs ini berisi campuran konten yang aman dan tidak aman." kotak konfirmasi.
cletus
1
Situs tempat kode berasal sepenuhnya SSL - informasi kontak yang sangat aman.
Darryl Hein
1
Jika Anda sama sekali peduli dengan keamanan pengguna Anda, selalu gunakan HTTPS untuk javascript. Tanpa HTTPS, cukup mudah untuk man-in-the-middle (MITM) permintaan tersebut dan melayani eksploit bersama javascript yang ingin Anda kirim ke orang. Pikirkan wifi publik, router rumah yang diretas, dll. Sebagai lokasi MITM yang memungkinkan. Lihatlah semua kompetisi pwn-to-own: mereka selalu mengeksploitasi browser untuk masuk.
Hans-Christoph Steiner
8

Saya tidak ingin situs publik yang saya kembangkan bergantung pada situs eksternal mana pun, dan karenanya, saya akan meng-host jQuery sendiri.

Apakah Anda bersedia memiliki pemadaman di situs Anda ketika yang lain (Google, jquery.com, dll) turun? Lebih sedikit ketergantungan adalah kuncinya.

slacy
sumber
2
Saya menempatkan pengalaman pengguna (waktu muat cepat) di sana dengan lebih sedikit ketergantungan.
Dscoduc
1
@slacy, hei, situs Anda sedang down! sebenarnya jk, tetapi saya memang melihat Anda menggunakan google analytics dan memiliki skrip mereka di awal bukan akhir - yang akan memperlambat situs Anda turun fraksional jika google IS menjadi lambat
Simon_Weaver
3
hmm ... slacy menggunakan Google Analytics? Bukankah dia hanya mengatakan bahwa dia tidak ingin situs publik apa pun yang dia kembangkan bergantung pada situs eksternal? ;-)
Dscoduc
1
Wow, kawan, ada komentar keras di sana. :) Ya, saya menggunakan Analytics di blog pribadi saya, tetapi itu bukan situs produksi yang menghasilkan pendapatan, jadi saya pikir itu benar-benar baik-baik saja. Saya yakin situs saya mati selama beberapa hari per tahun. Ingat, apa yang Anda lakukan untuk situs pribadi dan untuk pekerjaan tidak sama
slacy
6
Ada alasan bagus lainnya untuk menggunakan salinan lokal: Google sering diblokir di banyak negara seperti Iran, Cina, dll. Jadi itu berarti lebih dari satu miliar orang tidak akan memiliki akses.
Hans-Christoph Steiner
6

Pro: Host di Google memiliki manfaat

  • Mungkin lebih cepat (server mereka lebih dioptimalkan)
  • Mereka menangani caching dengan benar - 1 tahun (kami berjuang untuk diizinkan membuat perubahan untuk mendapatkan tajuk yang tepat di server kami)
  • Pengguna yang telah memiliki tautan ke versi yang dihosting Google di domain lain sudah memiliki file dalam cache mereka

Cons:

  • Beberapa browser mungkin melihatnya sebagai domain silang XSS dan melarang file.
  • Terutama pengguna yang menjalankan plugin NoScript untuk Firefox

Saya ingin tahu apakah Anda dapat TERMASUK dari Google, dan kemudian memeriksa keberadaan beberapa variabel Global, atau semacamnya, dan apakah tidak adanya memuat dari server Anda?

Kristen
sumber
3
Ini adalah kontra Firefox, bukan milik Google,.)
Nakilon
6

Ada beberapa masalah di sini. Pertama, metode muat async yang Anda tentukan:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('jquery', '1.3.1');
  google.setOnLoadCallback(function() {
    // do stuff
  });
</script>

memiliki beberapa masalah. Tag skrip menghentikan sementara pemuatan halaman saat diambil (jika perlu). Sekarang jika mereka lambat memuat ini buruk tetapi jQuery kecil. Masalah sebenarnya dengan metode di atas adalah bahwa karena beban jquery.js terjadi secara independen untuk banyak halaman, mereka akan selesai memuat dan merender sebelum jquery dimuat sehingga setiap gaya jquery yang Anda lakukan akan menjadi perubahan yang terlihat bagi pengguna .

Cara lainnya adalah:

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

Coba beberapa contoh sederhana seperti, miliki tabel sederhana dan ubah latar belakang sel menjadi kuning dengan metode setOnLoadCallback () vs $ (dokumen) .ready () dengan beban jquery.min.js statis. Metode kedua tidak akan memiliki flicker yang terlihat. Surat wasiat pertama. Secara pribadi saya pikir itu bukan pengalaman pengguna yang baik.

Sebagai contoh jalankan ini:

<html>
<head>
  <title>Layout</title>
  <style type="text/css">
    .odd { background-color: yellow; }
  </style>
</head>
<body>
<table>
  <tr><th>One</th><th>Two</th></tr>
  <tr><td>Three</td><td>Four</td></tr>
  <tr><td>Five</td><td>Six</td></tr>
  <tr><td>Seven</td><td>Nine</td></tr>
  <tr><td>Nine</td><td>Ten</td></tr>
</table> 
<script src="http://www.google.com/jsapi"></script>
<script>
  google.load("jquery", "1.3.1");
  google.setOnLoadCallback(function() {
    $(function() {
      $("tr:odd").addClass("odd");
    });
  });
</script>
</body>
</html>

Anda (harus) melihat tabel muncul dan kemudian baris menjadi kuning.

Masalah kedua dengan metode google.load () adalah hanya menampung sejumlah file terbatas. Ini adalah masalah untuk jquery karena sangat bergantung pada plug-in. Jika Anda mencoba dan menyertakan plugin jquery dengan <script src="...">tag dan google.load()plug-in mungkin akan gagal dengan pesan "jQuery belum ditentukan" karena belum dimuat. Saya tidak benar-benar melihat cara mengatasi ini.

Masalah ketiga (dengan kedua metode) adalah bahwa mereka adalah satu beban eksternal. Dengan anggapan Anda memiliki beberapa plugin dan kode Javascript Anda sendiri, Anda memiliki minimal dua permintaan eksternal untuk memuat Javascript Anda. Anda mungkin lebih baik mendapatkan jquery, semua plug-in yang relevan dan kode Anda sendiri dan memasukkannya ke dalam satu file yang diperkecil.

Dari Haruskah Anda Menggunakan API Perpustakaan Ajax Google untuk Hosting? :

Saat memuat kali, Anda sebenarnya memuat dua skrip - skrip jsapi dan skrip mootools (versi terkompresi dari atas). Jadi itu dua koneksi, bukan satu. Dalam pengalaman saya, saya menemukan bahwa waktu buka sebenarnya 2-3 kali lebih lambat daripada memuat dari server bersama pribadi saya, meskipun itu berasal dari Google, dan versi file terkompresi saya beberapa K lebih besar dari Google. Ini, bahkan setelah file dimuat dan (mungkin) di-cache. Jadi bagi saya, karena bandwidth tidak terlalu menjadi masalah, tidak akan menjadi masalah.

Terakhir Anda memiliki masalah potensial dari browser paranoid yang menandai permintaan sebagai semacam upaya XSS. Ini biasanya bukan masalah dengan pengaturan default tetapi pada jaringan perusahaan di mana pengguna mungkin tidak memiliki kontrol atas browser yang mereka gunakan apalagi pengaturan keamanan Anda mungkin memiliki masalah.

Jadi pada akhirnya saya tidak bisa benar-benar melihat saya menggunakan Google AJAX API untuk jQuery setidaknya (API lebih "lengkap" adalah cerita yang berbeda dalam beberapa hal) banyak kecuali mengirim contoh di sini.

cletus
sumber
Saya belum mengalami salah satu masalah yang Anda sebutkan. Hanya memuat barang-barang dalam urutan yang benar akan menyelesaikan hampir semua yang saya mengerti.
Darryl Hein
4

Selain orang yang menyarankan untuk menghostingnya di server sendiri, saya telah mengusulkan untuk menyimpannya di domain terpisah (misalnya static.website.com) untuk memungkinkan browser memuatnya secara terpisah dari utas konten lainnya. Tip ini juga berfungsi untuk semua hal statis, misalnya gambar dan css.

Sergii
sumber
4

Saya harus memilih -1 untuk perpustakaan yang dihosting di Google. Mereka mengumpulkan data, gaya analitik google, dengan bungkusnya di sekitar perpustakaan ini. Minimal, saya tidak ingin browser klien melakukan lebih dari yang saya minta, apalagi yang ada di halaman. Lebih buruk lagi, ini adalah "versi baru" Google yang tidak jahat - menggunakan javascript tidak mencolok untuk mengumpulkan lebih banyak data penggunaan.

Catatan: jika mereka telah mengubah praktik ini, super. Tetapi terakhir kali saya mempertimbangkan untuk menggunakan pustaka yang dihosting, saya memantau lalu lintas http keluar di situs saya, dan panggilan berkala ke server google bukanlah sesuatu yang saya harapkan.

jro
sumber
Tetapi apakah Anda sudah menjalankan Google Analytics di situs Anda? Karena saya saya tidak mengira itu membuat banyak perbedaan apakah JQuery berasal dari Google atau tidak, mereka mungkin sudah tahu saya menjalankannya di situs saya ...
Dscoduc
Tapi itu Cached selama 1 tahun - apakah kita bahkan mengirim 304 "File berubah" ke Google sementara itu?
Kristen
Ya, saya juga melihat panggilan periodik itu ke Google (Manajer aktivitas Safari memiliki daftar yang bagus).
Darryl Hein
Dscoduc - ya, menggunakan Analytics. Setidaknya dengan implementasi itu, saya mengerti sebelumnya bahwa saya menyerahkan data penggunaan. Tidak demikian halnya dengan JS libs.
jro
3

Saya mungkin jadul tentang hal ini, tetapi saya masih tidak menyukai hotlinking. Mungkin Google adalah pengecualian, tetapi secara umum, itu benar-benar cara yang baik untuk meng-host file di server Anda sendiri.

Matt Howell
sumber
3
Apa yang Anda maksud dengan "perilaku yang baik?" Google menganjurkan Anda untuk menautkan ke server mereka. Ini dipompa oleh infrastruktur Google yang luar biasa.
Nosredna
2
pasti ada kebingungan pada awalnya ketika Anda mendengar tentang menggunakan google. tetapi sebagai nosredna mengatakan ini didorong "Kami mengambil rasa sakit dari hosting perpustakaan, benar pengaturan header cache, tetap up to date dengan yang paling perbaikan bug terbaru, dll" - code.google.com/apis/ajaxlibs
Simon_Weaver
3

Saya akan menambahkan ini sebagai alasan untuk meng-host file-file ini secara lokal.

Baru-baru ini sebuah simpul di California Selatan pada TWC belum dapat menyelesaikan domain ajax.googleapis.com (untuk pengguna dengan IPv4) hanya sehingga kami tidak mendapatkan file eksternal. Ini telah terputus-putus sampai kemarin (sekarang tetap.) Karena terputus-putus, saya mengalami banyak masalah untuk memecahkan masalah pengguna SaaS. Menghabiskan berjam-jam mencoba untuk melacak mengapa beberapa pengguna tidak memiliki masalah dengan perangkat lunak, dan yang lainnya mengalami kesulitan. Dalam proses debug saya yang biasa, saya tidak terbiasa bertanya kepada pengguna apakah IPv6nya dimatikan.

Saya tersandung pada masalah karena saya sendiri menggunakan "rute" khusus ini ke file dan saya hanya menggunakan IPV4. Saya menemukan masalah dengan alat pengembang yang memberi tahu saya bahwa jquery tidak dimuat, kemudian mulai melakukan traceroutes dll ... untuk menemukan masalah sebenarnya.

Setelah ini, saya kemungkinan besar tidak akan pernah kembali ke file yang di-host secara eksternal karena: google tidak harus turun untuk ini menjadi masalah, dan ... salah satu dari node ini dapat dikompromikan dengan pembajakan DNS dan mengirimkan js berbahaya bukannya file yang sebenarnya. Selalu berpikir saya aman karena domain google tidak akan pernah turun, sekarang saya tahu ada simpul di antara pengguna dan tuan rumah bisa menjadi titik gagal.

berbasisrop
sumber
2

Saya hanya menyertakan versi terbaru dari situs jQuery: http://code.jquery.com/jquery-latest.pack.js Ini sesuai dengan kebutuhan saya dan saya tidak perlu khawatir tentang pembaruan.

EDIT: Untuk aplikasi web utama, tentu mengendalikannya; unduh dan sajikan sendiri. Tetapi untuk situs pribadi saya, saya tidak peduli. Hal-hal tidak secara ajaib menghilang, mereka biasanya ditinggalkan terlebih dahulu. Saya mengikuti cukup banyak untuk tahu apa yang harus diubah untuk rilis mendatang.

geowa4
sumber
1
saya menemukan metode itu agak berbahaya, bagaimana jika perubahan kode di perpustakaan merusak situs Anda? atau situs jquery turun? saya lebih suka memiliki kontrol penuh atas file.
Jason Miesionczek
1
Juga, saya benci untuk memukul bandwidth jQuery people seperti ini. Mereka sudah menyediakan alat gratis yang sangat keren, dan saya benci mereka turun karena biaya bandwidth. Lebih baik menggunakan Google sebagai sumber eksternal Anda jika Anda tidak ingin meng-host sendiri, karena mereka menyediakannya untuk tujuan itu.
nezroy
Saya akan merekomendasikan beralih untuk menggunakan Google daripada JQuery. Alasan utama adalah bahwa Google kemungkinan akan memiliki lebih banyak server di seluruh dunia daripada JQuery dan dari pengalaman saya, lebih banyak orang menggunakan hosting Google yang meningkatkan peluang Anda bahwa mereka sudah memiliki cache.
Dscoduc
Saya setuju dengan Jason, secara otomatis beralih ke versi yang lebih baru sangat berbahaya. Mungkin tidak sebanyak jika Anda hanya menggunakan jquery, tetapi dengan plugin saya pasti tidak merekomendasikannya. I untuk satu menggunakan plugin di satu situs yang bekerja dengan 1.2.6 tapi tidak 1.3.x (belum ...)
Jeroen
2

Berikut beberapa sumber yang bermanfaat, semoga dapat membantu Anda memilih CDN Anda. MS baru-baru ini menambahkan domain baru untuk pengiriman Perpustakaan melalui CDN mereka.

Format Lama: http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.1.js Format Baru: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js

Ini seharusnya tidak mengirim semua cookie untuk microsoft.com. http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_11

Berikut ini beberapa statistik tentang teknologi paling populer yang digunakan di web untuk semua teknologi. http://trends.builtwith.com/

Semoga bisa membantu Anda memilih.

GibboK
sumber
1

Jika saya bertanggung jawab untuk situs 'langsung' saya lebih baik mengetahui segala sesuatu yang terjadi dan masuk ke situs saya. Untuk alasan itu saya meng-host sendiri versi jquery-min baik di server yang sama atau server statis / eksternal tetapi bagaimanapun juga lokasi di mana hanya saya (atau program / proxy saya) yang dapat memperbarui perpustakaan setelah memverifikasi / menguji setiap perubahan


sumber
Saya berharap Google tidak akan pernah mengubah file - untuk perbaikan bug mereka akan meng-host file baru, dengan nomor versi berbeda dalam nama file. Atau aku naif? Apakah mereka akan meluncurkan "Perbaikan kecil" menggunakan nama file yang sama ??
Kristen
Google tidak boleh mengubah file jika Anda meminta versi tertentu.
Darryl Hein
1

Di kepala:

  (function() {
    var jsapi = document.createElement('script'); jsapi.type = 'text/javascript'; jsapi.async = true;
    jsapi.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com/jsapi?key=YOUR KEY';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('head')[0]).appendChild(jsapi);
  })();

Ujung tubuh:

<script type="text/javascript">
google.load("jquery", "version");
</script>
jujur
sumber
0

Saya meng-host-nya dengan file js saya yang lain di server saya sendiri, dan, pada saat itu, gabungkan dan perkecil mereka (dengan django-compressor, di sini, tapi bukan itu intinya) untuk dilayani sebagai hanya satu file js, dengan semua situsnya kebutuhan dimasukkan ke dalamnya. Anda harus melayani file js Anda sendiri, jadi saya tidak melihat alasan untuk tidak menambahkan byte jquery tambahan di sana juga - beberapa kb lebih jauh lebih murah untuk ditransfer, daripada lebih banyak permintaan yang harus dibuat. Anda tidak bergantung pada siapa pun, dan segera setelah js minified Anda di-cache, Anda juga super cepat.

Pada pemuatan pertama, solusi berbasis CDN mungkin menang, karena Anda harus memuat kilobyte jquery tambahan dari server Anda sendiri (tetapi, tanpa permintaan tambahan). Saya ragu perbedaannya terlihat. Dan kemudian, pada beban pertama dengan cache yang dihapus, solusi Anda sendiri yang dihosting mungkin akan selalu lebih cepat, karena lebih banyak permintaan (dan pencarian DNS) yang diperlukan, untuk mengambil jquery CDN.

Saya bertanya-tanya bagaimana hal ini hampir tidak pernah disebutkan, dan bagaimana CDN tampaknya menguasai dunia :)

benzkji
sumber