Karena bundling dan minifikasi adalah semua tentang pengoptimalan dan membuat halaman memuat lebih cepat, menurut saya masuk akal untuk membuat satu bundel untuk skrip dan satu bundel untuk gaya per basis tampilan, sehingga untuk memuat semua skrip dan gaya yang dibutuhkan browser paling banyak membuat 2 permintaan. Jadi katakanlah saya memiliki tempat di _Layout.cshtml
mana saya memerlukan 3 file js bootstrap.js
, jquery.js
dan beberapa custom1.js
saya dapat membuat satu bundel, sesuatu seperti ini:
bundles.Add(new ScriptBundle("~/bundles/layout").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.js",
"~/Scripts/custom1.js"));
Lalu katakanlah saya memiliki pandangan lain di User.cshtml
mana saya perlu bootstrap.js
, jquery.js
dan custom2.js
, sekali lagi saya membuat satu bundel:
bundles.Add(new ScriptBundle("~/bundles/user").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.js",
"~/Scripts/custom2.js"));
Pendekatan yang sama dapat digunakan untuk bundel gaya. Tapi dari apa yang saya lihat itu bukan praktik yang umum untuk melakukannya dengan cara ini biasanya bundel dibuat berdasarkan tipe, misalnya, satu untuk bootstrap, satu untuk jquery, satu untuk file js / css khusus, dll. Tetapi tidak akan meningkatkannya waktu pemuatan halaman, karena memiliki lebih banyak bundel berarti lebih banyak permintaan ke server. Juga apa masalah melakukan sesuatu seperti yang saya jelaskan di awal?
sumber
Tidak.
Karena caching peramban, Anda mendapatkan hasil keseluruhan terbaik dengan menggunakan bundel atau bundel yang sama di semua halaman. Ini berarti bahwa pengguna akan mengunduh semua css dan js ketika mereka menekan halaman pertama dan menggunakan kembali file itu pada halaman berikutnya.
Mengingat bahwa sebagian besar bundel akan dikemas kerangka kerja javascript seperti jquery dan bootstrap. Beberapa byte tambahan dari kode khusus Anda memiliki efek yang tidak signifikan pada keseluruhan kecepatan pemuatan halaman.
sumber
Kelemahan dari bundel per halaman adalah bundel yang di-cache dari satu halaman tidak dapat digunakan pada halaman lain, yang biasanya Anda inginkan adalah sebagian besar skrip Anda (mis. JQuery bootstrap dll ...) sedang diunduh satu kali dan di-cache untuk semua halaman di situs
Solusi "optimal" dari perspektif caching adalah memiliki satu bundel yang berisi semua .js untuk semua halaman di seluruh situs, kelemahan dari pendekatan itu adalah bahwa bundel tersebut berakhir menjadi cukup besar yang berarti beban halaman awal Anda lebih lambat , yang mungkin tidak diinginkan untuk situs web yang menghadap pelanggan di mana tayangan awal adalah segalanya.
Solusi "terbaik" kemungkinan akan menjadi campuran teknik, misalnya
sumber