Perfomansi merupakan salah satu perhatian utama dalam membangun aplikasi web. Dalam sebuah artikel blog yang dibuat oleh Yehuda Katz, dimana dia salah satu anggota Rails Core Contributor dan jQuery Core Contributor, menjelaskan bahwa untuk meningkatkan performansi tidak hanya server-side, tetapi juga client-side. Dia juga menunjukkan studi bahwa 90% performansi dipengaruhi oleh client-side. Selain itu, Yehuda Katz menjelaskan bahwa rekomandasi dari tool YSlow merupakan yang terbaik untuk meningkatkan performansi client-side. Berikut ini adalah tips yang diberikan olehnya untuk meningkatkan performansi client-side.

1. Tidak cepat expire

Rekomendasi dari YSlow adalah atur header expire pada web server sehingga browser setelah kunjungan pertama tidak perlu melakukan download ulang terhadap file image, Javascript, atau CSS. Namun yang menjadi masalah adalah ketika file-file tersebut diubah, maka browser akan tetap menggunakan file yang lama.

Solusinya adalah memasukkan timestamp seperti ini <img src="http://www.blogger.com/images/myasset.png?943925789135" alt="" />. Ketika file dimodifikasi, cukup update timestamp-nya sehingga browser akan tahu bahwa terdapat file yang telah diubah. Dengan Ruby on Rails, metode timestamp seperti ini telah diterapkan secara default.

2. GZip

Lakukan konfigurasi Web Server sehingga dapat melakukan kompresi Gzip terhadap file-file seperti javascript dan CSS sehingga ukuran file berkurang. Hal ini sangat direkomendasikan oleh YSlow.

3. Pisahkan Asset dengan banyak host

Pisahkan file-file seperti Javascript, CSS, dan image yang digunakan dengan banyak host misal, assets0.myapp.com, assets1.myapp.com dan seterusnya. Dengan begini, browser akan melakukan download file-file tersebut secara paralel sehingga akan mempecepat load halaman web. Dalam Rails, konfigurasi tersebut dapat dilakukan dengan mudah seperti dibawah ini.

config.action_controller.asset_host = "assets%d.myapp.com"

Jika sebuah aplikasi web dibangun dengan Rails, tidak heran jika halaman web lebih cepat di-load. Hal ini dikarenakan banyak rekomendasi dari YSlow telah diimplementasikan secara default dan ada beberapa bagian yang cukup melakukan sedikit konfigurasi untuk menggunakannya.