Monday, 5 August 2013

Page Caching Pada YII Framework

Standard
Sumber Gambar: http://microsoft.com
Dalam laman resmi yii di http://yiiframework.com memberikan review tentang page caching. Sebenarnya apa itu page caching dan apakah fungsinya? Berikut gambaran tentang page caching atau penembolokan halaman.
Penembolokan halaman merujuk pada caching isi seluruh halaman. Penembolokan halaman bisa terjadi di berbagai tempat. Misalnya, dengan memilih tajuk halaman(page header) yang sesuai, penjelajah klien(client browser) mungkin menembolok halaman yang sedang dilihat untuk jangka waktu tertentu. Aplikasi Web sendiri juga dapat menyimpan isi halaman dalam cache. Dalam subbab ini, fokus kita pada pendekatan ini.
Penembolokan halaman bisa dipertimbangkan sebagai kasus khusus caching fragmen. Karena isi halaman sering dihasilkan dari dari penerapan tata letak(layout) pada sebuah tampilan, caching halaman tidak akan berfungsi jika kita hanya memanggil beginCache() dan endCache() dalam tata letak. Alasannya dikarenakan tata letak diterapkan dalam metode CController::render() SETELAH tampilan konten dievaluasi.
Untuk menembolok seluruh halaman, kita harus melewatkan eksekusi aksi penghasil isi halaman. Kita bisa menggunakan COutputCache sebagai aksi filter untuk menyelesaikan tugas ini. Kode berikut akan memperlihatkan bagaimana kita mengkonfigurasi filter cache:

public function filters(){
    return array(
        array(
            'COutputCache',
            'duration'=>100,
            'varyByParam'=>array('id'),
        ),
    );
}
Konfigurasi filter di atas akan menjadikan filter diterapkan ke semua aksi dalam controller. Kita dapat membatasinya ke satu atau beberapa aksi hanya dengan menggunakan operator plus. Lebih jelasnya bisa ditemukan dalam filter.
Tip: Kita dapat menggunakan COutputCache sebagai filter karena kelas tersebut diturunkan dari CFilterWidget, yang artinya COutputCache dapat berupa widget dan juga filter. Sebenarnya, cara kerja widget mirip dengan filter: widget (filter) dimulai sebelum isi yang dilampirkan (aksi) dievaluasi, dan widget (filter) berakhir setelah isi yang dilampirkan (aksi) dievaluasi.
Kesimpulan:
Yii punya beberapa level cache, dari db cache, fragment cache sampe full cache.
Jika anda punya halaman index (actionIndex) di controller tertentu yang contentnya dinamis (diambil dari database) tapi tidak sering2 diupdate, gunakan full page cache di controller-nya (Peter Jack Kambey, 2013)

0 komentar:

Post a comment


Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com