Pembaruan berdasarkan komentar:
Versi singkat: Tidak masalah, tetapi mungkin tergantung pada host mereka. Mereka semua meng-host hal yang berbeda: Google tidak meng-host jQuery. Validasi, Microsoft tidak meng-host jQuery-UI, sejak 2016 mereka melakukannya !!, Microsoft menawarkan skrip mereka yang jika tidak akan dilayani melalui ScriptResource.axd
dan integrasi yang lebih mudah (misalnya ScriptManager dengan ASP. Net 4.0 ).
Catatan Penting: Jika Anda sedang membangun aplikasi intranet, menjauhlah dari pendekatan CDN. Tidak masalah siapa yang menghostingnya, kecuali jika Anda berada di server yang sangat kelebihan secara internal, tidak ada CDN yang akan memberi Anda kinerja lebih dari yang akan diberikan ethernet 100mb / 1GB lokal. Jika Anda menggunakan CDN untuk aplikasi internal yang ketat, Anda akan merusak kinerja . Atur header kedaluwarsa cache Anda dengan benar dan abaikan CDN yang ada dalam skenario khusus intranet.
Peluang untuk diblokir tampaknya hampir sama, hampir nol. Saya telah bekerja pada kontrak di mana ini tidak benar, tetapi tampaknya menjadi pengecualian. Juga, sejak posting asli jawaban ini, konteks di sekitarnya telah banyak berubah, Microsoft CDN telah membuat banyak kemajuan.
Proyek yang saya gunakan saat ini menggunakan kedua CDN yang paling cocok untuk solusi kami. Beberapa faktor berperan dalam hal ini. Pengguna dengan browser yang lebih lama mungkin masih membuat 2 permintaan simultan per domain seperti yang direkomendasikan oleh spesifikasi HTTP . Ini bukan masalah bagi siapa pun yang menjalankan sesuatu yang benar-benar baru yang mendukung pipelining (setiap browser saat ini), tetapi berdasarkan faktor lain kami juga merobohkan batasan ini, setidaknya sejauh javascript.
CDN Google yang kami gunakan untuk:
CDN Microsoft yang kami gunakan untuk:
Server kami:
- Combined.js? V = 2.2.0.6190 (Major.Minor.Iteration.Changeset)
Karena bagian dari proses pembuatan kami menggabungkan dan memperkecil semua javascript khusus, kami melakukan ini melalui manajer skrip kustom yang menyertakan versi rilis atau debug (non-minified) dari skrip ini tergantung pada build. Karena Google tidak meng-host paket validasi jQuery, ini bisa menjadi sisi negatifnya. MVC termasuk / menggunakan ini dalam rilis 2.0 mereka, sehingga Anda dapat mengandalkan sepenuhnya pada CDN Microsoft untuk semua kebutuhan Anda, dan semuanya otomatis melalui ScriptManager .
Satu-satunya argumen lain yang akan dibuat adalah waktu DNS, ada biaya untuk ini dalam hal kecepatan memuat halaman. Rata-Rata: Hanya karena digunakan lebih banyak (sudah ada lebih lama) ajax.googleapis.com
kemungkinan akan dikembalikan oleh DNS lebih cepat daripada ajax.microsoft.com
, hanya karena server DNS lokal lebih mungkin untuk mendapatkan permintaan untuk itu (ini adalah pengguna pertama di area penalti) . Ini adalah hal yang sangat kecil dan hanya harus dipertimbangkan jika kinerja sangat penting, hingga sepersekian detik.
(Ya: Saya menyadari hal ini bertentangan dengan saya menggunakan kedua CDN, tetapi dalam kasus kami waktu DNS jauh dibayangi oleh waktu tunggu pada javascript / pemblokiran yang terjadi)
Terakhir, jika Anda belum melihatnya, salah satu alat terbaik di luar sana adalah Firebug , dan beberapa plug-in untuk itu: Page Speed dan YSlow . Jika Anda menggunakan CDN tetapi halaman Anda meminta gambar setiap kali karena tidak ada cache-header, Anda kehilangan buah yang menggantung rendah. Panel Net Firebug dapat dengan cepat memberi Anda waktu buka halaman yang cepat, dan Page Speed / YSlow dapat menawarkan beberapa saran bagus untuk membantu.
Anda harus benar-benar menggunakan CDN Google untuk jQuery (dan ini berasal dari pengembang Microsoft-sentris).
Ini statistik sederhana. Mereka yang akan mempertimbangkan menggunakan MS CDN untuk jQuery akan selalu menjadi minoritas. Ada terlalu banyak pengembang non-MS yang menggunakan jQuery yang akan menggunakan Google dan tidak akan mempertimbangkan untuk menggunakan Microsoft. Karena salah satu kemenangan besar dengan CDN publik adalah peningkatan caching , pemisahan penggunaan di antara banyak CDN mengurangi potensi manfaat itu.
sumber
Google akan mengirimkan kepada Anda versi jQuery yang diperkecil dengan perangkat lunak mereka sendiri, versi ini 6kb lebih ringan dari versi standar yang diperkecil yang dilayani oleh MS. Pergi untuk Google.
sumber
Satu hal kecil yang perlu dipertimbangkan adalah bahwa kedua perusahaan menawarkan perpustakaan "ekstra" yang sedikit berbeda:
Tergantung pada kebutuhan Anda, ini mungkin relevan.
sumber
Juga harus dicatat bahwa ajax.microsoft.com adalah sub domain permintaan microsoft.com, kirim semua cookie microsoft.com, menambah waktu keseluruhan yang diperlukan untuk mendapatkan file kembali.
Juga, ajax.microsoft.com menggunakan kompresi IIS7 default yang lebih rendah daripada kompresi standar yang digunakan server web lain.
http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js - 33.4K
http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js - 26.5K
Juga, seperti yang disebutkan orang lain google CDN jauh lebih populer yang sangat meningkatkan peluang file di-cache.
Jadi saya sangat merekomendasikan menggunakan google.
sumber
Mungkin tidak masalah, tetapi Anda dapat memvalidasi ini dengan beberapa pengujian A / B. Kirim setengah dari lalu lintas Anda ke satu CDN, dan setengah ke yang lain, dan atur beberapa profil untuk mengukur respons. Saya akan berpikir lebih penting untuk dapat beralih dengan mudah jika salah satu dari mereka memiliki masalah ketidaktersediaan yang serius.
sumber
Saya tahu saya sedikit terlambat di sini, tapi ini kode yang saya gunakan dalam produksi. Saya tidak pernah memiliki masalah dengan itu, tetapi jarak tempuh Anda dapat bervariasi. Pastikan Anda mengujinya di lingkungan Anda sendiri.
sumber
Ini tentang statistik: jquery.com memuat jQuery dari Google. Demikian juga Twitter, Stackoverflow dan banyak lainnya. Jadi, ada kemungkinan yang cukup tinggi bahwa pengguna situs web Anda telah menyimpannya di cache = tidak ada unduhan sama sekali .
Lupakan validator, bandwidth dan kecepatan karena ini adalah manfaat utama. Jika tidak, opsi CDN lainnya pada dasarnya akan bekerja pada level yang sama.
sumber
Saya sebenarnya ingin tahu tentang hal ini sendiri jadi saya menyiapkan halaman uji jsbin menggunakan masing-masing berikut ini dan kemudian menjalankannya melalui alat perbandingan visual webpagetest.org. Saya menguji:
Siapa yang tercepat: code.jquery.com dengan 0,1 detik di kedua tes
Siapa yang paling lambat: ajax.aspnetcdn.com sebesar 0,7 detik di tes pertama dan ajax.googleapis.com oleh 1 detik di tes kedua
Inilah tes pertama (masing-masing diuji 3 kali):
Video: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3
Laporan: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3
Inilah tes kedua (masing-masing 3 lainnya):
Video: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74
Laporan: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJRR
sumber
Seperti yang dikatakan oleh Pingdom :
sumber
Saya pikir itu tergantung di mana audiens yang Anda targetkan. Anda dapat menggunakan alertra.com untuk memeriksa kecepatan CDN dari banyak lokasi di seluruh dunia.
sumber
Satu pertimbangan tambahan - jika situs Anda adalah SSL dan Anda perlu mendukung Android 2.1 (atau lebih awal), sertifikat SSL pada versi HTTPS dari Microsoft CDN akan membuat crash versi browser Android tersebut, sesuai dengan masalah ini: http: // code .google.com / p / android / issues / detail? id = 5001 . Ini bukan "kesalahan" Microsoft, karena sertifikat SSL secara teknis valid dan cacatnya ada dalam implementasi SSL Android ... tetapi itu akan merusak situs Anda, toh.
Sertifikat SSL pada CDN Google tidak bertentangan dengan masalah khusus ini (terkait dengan "Nama Alt Subjek Sertifikat" sertifikat).
Jadi, untuk dukungan SSL + Android 2.1, gunakan Google CDN.
sumber
Jawaban saya agak berbeda dari yang lain, saya akan menggunakan microsoft jika Anda memerlukan validator jquery yang hampir semua orang butuhkan jika Anda menggunakan jquery.
Koneksi Microsoft CDN http adalah Keep-Alive yang besar plus ketika Anda meminta beberapa item.
Jadi jika Anda memerlukan validasi jquery maka gunakan Microsoft CDN, bahkan jika Anda perlu jquery ui gunakan microsoft karena google tidak menyimpan keep-live sehingga setiap permintaan ada di dalamnya sendiri. jadi pencampuran dengan cara itu adalah plus. jika Anda menggunakan microsoft hanya untuk validator maka Anda melakukan koneksi terpisah dengan server google untuk setiap permintaan.
sumber
Dalam musim panas dikatakan bahwa microsoft tidak menawarkan UI, itu tidak benar (lagi). Ini dapat diunduhload di http://www.asp.net/ajaxlibrary/cdn.ashx .
sumber
Juga pertimbangkan ketika menggunakan CDN Google yang beberapa kali orang membuat kesalahan ketik seperti ajax.googelapis.com. Ini berpotensi membuat serangan xss (cross site scripting) yang benar-benar jahat. Saya sebenarnya telah menguji ini dengan mendaftarkan salah ketik googlapis.com dan sangat cepat menemukan diri saya melayani permintaan untuk javascript, peta, css dll.
Saya mengirim email ke Google dan meminta mereka untuk mendaftarkan URL typo CDN yang serupa tetapi belum mendapat tanggapan. Ini bisa menjadi alasan nyata untuk tidak mengandalkan CDN karena ada penyerang berbahaya yang menunggu permintaan kesalahan ketik dan dapat dengan mudah melayani kembali jquery dll dengan muatan xss.
Terima kasih
sumber
Tergantung industri mana yang menjadi target aplikasi, Anda mungkin tidak ingin menggunakan CDN yang dikelola oleh organisasi lain. Ini sering menimbulkan masalah terkait kepatuhan, privasi, dan kerahasiaan.
Misalnya, ketika Anda memasukkan Google Analytics dalam aplikasi yang aman, browser masih mengirimkan URL saat ini sebagai header "referer". Setiap pengidentifikasi, katakan id sesi atau token rahasia dapat muncul di log mereka. Misalnya, jika IP klien 192.0.2.5referensi https: //healthsystem.example/condition/impotence , maka well, Anda dapat menyimpulkan informasi yang dianggap agak pribadi.
Kasus lain termasuk informasi konsekuensi, seperti nomor akun, nomor jaminan sosial atau informasi sesi di URL. Data semacam itu tidak boleh ada di URL karena dapat digunakan di luar aplikasi.
Meskipun Anda dapat mempercayai Google, Microsoft atau Yahoo, pengguna Anda mungkin tidak.
Untuk industri seperti Keuangan, Hukum dan Perawatan Kesehatan, Anda mungkin ingin membuat CDN sendiri dengan bantuan vendor (misalnya Akamai) yang dengannya Anda dapat menandatangani BAA.
sumber
Saya akan menyarankan agar Anda mendasarkan penggunaan Anda pada lokasi umum dari pengguna yang Anda targetkan.
Jika situs Anda ditargetkan untuk masyarakat umum, maka menggunakan CDN Google akan menjadi pilihan yang baik.
Jika situs Anda juga ditargetkan di China, maka menggunakan CDN Microsoft akan menjadi pilihan yang lebih baik. Saya tahu dari pengalaman saya, karena server Google terus diblokir oleh pemerintah Cina, membuat situs web yang menggunakannya tidak dapat dimuat.
* Perhatikan bahwa Anda dapat membuat situs khusus kawasan, mis. Cn.mysite.com untuk melayani secara khusus untuk China, tetapi jika Anda kekurangan sumber daya dan waktu, patut dipertimbangkan.
Daftar lengkap Microsoft CDN di sini. http://www.asp.net/ajaxlibrary/cdn.ashx
Sejak itu mereka berganti nama menjadi ajax.aspnetcdn.com , yang mengurangi kemungkinan penyumbatan oleh aturan firewall.
sumber
Saya akan menggunakan keduanya!
Karena hosting Google Jquery telah ada jauh lebih lama, kemungkinannya jauh lebih tinggi bahwa orang-orang sudah akan memiliki cache dibandingkan dengan yang Microsoft, jadi saya akan memilikinya terlebih dahulu.
Secara pribadi, saya akan menggunakan sesuatu seperti ini -
(Tidak yakin ini 100% berfungsi, tapi saya hanya akan menulis ide dan bukan contoh - Ini referensi Google host Jquery dan bukan yang Microsoft karena saya tidak dapat menemukan tautan)
sumber
jQuery
tidak akan pernah ditentukan kecuali Anda telah secara aktif memuatnya. Dalam skrip Anda, cabang pertama akan selalu dieksekusi (kecuali jika Anda memiliki penyertaan jQuery lain di atas), menjadikan skrip menjadi berlebihan.