Saya mendapat kesan bahwa untuk kinerja terbaik, Javascript harus diperlakukan sebagai konten statis dan disajikan dari domain tanpa cookie bersama dengan file CSS, gambar, dll.
Tetapi Google mengatakan di sini: Jangan menyajikan file JS eksternal yang dimuat lebih awal dari domain tanpa masak
Untuk JavaScript yang dirujuk di kepala dokumen dan diperlukan untuk memulai halaman, itu harus dilayani dari nama host yang sama dengan dokumen utama. Karena sebagian besar browser memblokir unduhan dan render lainnya hingga semua file JavaScript diunduh, diuraikan dan dieksekusi, lebih baik untuk menghindari risiko pencarian DNS tambahan pada titik pemrosesan ini.
Jadi sekarang saya berkonflik. Saya tidak jelas tentang apa artinya "diperlukan untuk memulai halaman".
Saya biasanya memiliki dua referensi JavaScript, JQuery yang disajikan dari ajax.googleapis.com dan file master.js yang sebagian besar berisi penangan peristiwa dalam fungsi $ (dokumen) .ready (). Apakah ini diperlukan untuk memulai halaman?
Dengan opsi yang tersedia, (ajax.googleapis.com, domain tanpa cookie statis, nama host asli), di mana seharusnya JavaScript saya disajikan?
sumber
With common public resources ... there is a good chance that your visitor's browser has already done that DNS lookup today
Secara pribadi, saya tidak akan merasa nyaman mengandalkan ini untuk situs saya . Saya ingin itu secepat mungkin dalam situasi sebanyak mungkin. Apapun, Anda membuat poin bagus. +1Google menjalankan jaringan konten besar yang didistribusikan di seluruh dunia yang menempatkan konten lebih dekat kepada pengguna daripada server tunggal mana pun yang kemungkinan Anda jalankan (pikirkan Akami, tetapi dimiliki oleh Google) Jadi, dari sudut pandang kecepatan, masuk akal bahwa Google akan memberikan file Anda kepada pengguna lebih cepat dari server lokal Anda ... kecuali mereka berada sangat dekat dengan server pribadi Anda.
Pertanyaan ini telah berputar-putar di Stackoverflow, dan jawaban di atas tampaknya selalu menjadi konsensus. Tapi dari sudut pandang yang realistis, keuntungan yang didapat dari hosting di satu vs yang lain akan menjadi sangat minim dalam jangka panjang. Anda akan mendapatkan manfaat yang jauh lebih baik dari meminimalkan, mengoptimalkan, dan mengurangi permintaan http keseluruhan daripada Anda akan meneliti di mana segala sesuatu berada secara fisik. Dalam situasi di mana itu mulai menjadi masalah (saya melakukan pekerjaan di mana sebuah halaman memuat 1,5+ juta kali / hari, jadi peningkatan 5k berarti 5 gigs dalam penghematan bandwidth) biasanya ada tim pembuat keputusan yang ditugaskan untuk meneliti keputusan-keputusan ini.
Secara pribadi, saya biasanya meng-host di Google dengan satu-satunya alasan bahwa mereka akan memberi saya salinan terbaru dari apa yang saya cari.
sumber
Satu hal penting untuk diingat adalah bahwa browser memiliki batasan pada berapa banyak sumber daya yang akan diunduh secara bersamaan dari domain yang sama, biasanya antara 2 dan 6 tergantung pada browser. Menggunakan domain yang berbeda memungkinkan browser mengunduh lebih banyak hal secara bersamaan dari domain Anda.
Jadi solusi terbaik adalah dengan menggunakan CDN populer seperti ajax.googleapis.com karena tidak ada cookie. Pengguna mungkin sudah melakukan pencarian DNS dan bahkan mungkin telah men-cache sumber daya. CDN dioptimalkan untuk kecepatan dan mungkin memiliki server yang dekat dengan pengguna Anda.
Jika CDN bukan pilihan maka jika Anda memiliki banyak cookie atau memiliki banyak sumber daya untuk mengunduh (gambar dll.) Maka gunakan domain bebas cookie (hanya perlu melakukan pencarian DNS sekali saja).
Jika Anda memiliki sedikit sumber daya (hanya satu file javascript khusus) dan beberapa cookie (hanya id sesi kecil) yang dihosting dari domain yang sama.
Sumber daya yang baik:
http://www.phpied.com/free-falling-waterfalls/
http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/
http://developer.yahoo.com/performance/rules.html
sumber
Meskipun jawaban di atas telah membedah sebagian besar pertanyaan Anda, saya akan berkontribusi pada "diperlukan untuk memulai halaman" Saya menerjemahkan ini ke: apakah skrip ini penting untuk menggunakan situs web? Dari pengalaman, biasanya jawabannya tidak. Namun, kasus ketika saya akan:
Dan pedoman kinerja Yahoo YSlow untuk referensi.
sumber