Setahu saya, semua JavaScript Anda digabung menjadi 1 file. Rails melakukan ini secara default ketika menambahkan //= require_tree .
ke bagian bawah application.js
file manifes Anda .
Ini terdengar seperti penyelamat nyata, tapi saya sedikit khawatir tentang kode JavaScript khusus halaman. Apakah kode ini dijalankan pada setiap halaman? Hal terakhir yang saya inginkan adalah semua objek saya akan dipakai untuk setiap halaman ketika mereka hanya diperlukan pada 1 halaman.
Juga, bukankah ada potensi untuk kode yang berbenturan juga?
Atau apakah Anda meletakkan script
tag kecil di bagian bawah halaman yang hanya memanggil metode yang mengeksekusi kode javascript untuk halaman?
Apakah Anda tidak lagi memerlukan require.js?
Terima kasih
EDIT : Saya menghargai semua jawaban ... dan saya tidak berpikir mereka benar-benar mengerti masalahnya. Beberapa dari mereka adalah tentang gaya dan tampaknya tidak berhubungan ... dan yang lain hanya menyebutkan javascript_include_tag
... yang saya tahu ada (jelas ...) tetapi akan terlihat bahwa Rails 3.1 cara maju adalah untuk membungkus semua JavaScript Anda menjadi 1 file daripada memuat individu JavaScript di bagian bawah setiap halaman.
Solusi terbaik yang dapat saya temukan adalah dengan membungkus fitur-fitur tertentu dalam div
tag dengan id
s atau class
es. Dalam kode JavaScript, Anda hanya memeriksa apakah id
atau class
ada di halaman, dan jika itu adalah, Anda menjalankan kode JavaScript yang terkait dengan itu. Dengan cara ini jika elemen dinamis tidak ada di halaman, kode JavaScript tidak berjalan - meskipun sudah termasuk dalam masifapplication.js
file dikemas oleh Sprockets.
Solusi saya di atas memiliki manfaat bahwa jika kotak pencarian disertakan pada 8 dari 100 halaman, itu hanya akan berjalan pada 8 halaman tersebut. Anda juga tidak perlu memasukkan kode yang sama pada 8 halaman di situs. Bahkan, Anda tidak perlu memasukkan tag skrip manual di situs Anda di mana pun lagi.
Saya pikir ini adalah jawaban aktual untuk pertanyaan saya.
application.js
), dan pada kenyataannya referensi yang Anda berikan menunjukkan mengapa demikian: mengunduh adalah bagian paling lambat dari proses eksekusi JS. Banyak file kecil lebih dapat di-cache daripada yang besar. Orang-orang Unholy Rails tampaknya tidak menyadari, kemudian, bahwa rekomendasi mereka tidak konsisten dengan prinsip-prinsip yang mereka coba patuhi, dan oleh karena itu rekomendasi mereka tidak boleh dianggap serius.