mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-08 00:56:52 +01:00
43 lines
2.1 KiB
Plaintext
43 lines
2.1 KiB
Plaintext
Konten Dinamis(Dynamic Content)
|
|
======================================
|
|
|
|
Saat menggunakan [penembolokan fragmen](/doc/guide/caching.fragment) atau [penembolokan
|
|
halaman](/doc/guide/caching.page), kita sering mengalami situasi di mana
|
|
seluruh bagian output relatif statis kecuali pada satu atau beberapa
|
|
tempat. Sebagai contoh, halaman bantuan mungkin menampilkan halaman statis
|
|
informasi bantuan dengan nama pengguna yang saat ini masuk ditampilkan di
|
|
atas.
|
|
|
|
Untuk memecahkan masalah ini, kita dapat memvariasikan konten tembolok berdasarkan
|
|
pada nama pengguna, tetapi cara ini membuang ruang tembolok yang berharga karena
|
|
kebanyakan isinya sama kecuali nama pengguna. Kita juga bisa membagi halaman
|
|
ke dalam beberapa fragmen dan menembolokannya secara individual, tapi ini mempersulit tampilan kita dan menjadikan kode kita sangat kompleks. Pendekatan
|
|
yang lebih baik adalah penggunaan fitur *konten dinamis* yang disediakan oleh [CController].
|
|
|
|
Konten dinamis berarti sebuah fragmen output yang tidak harus ditembolokkan
|
|
meskipun disertakan di dalam fragmen tembolok. Untuk membuat konten selalu dinamis,
|
|
harus dibuat setiap kali meskipun penyertaan konten
|
|
sedang dilayani dari tembolok. Dikarenakan alasan ini, kita memerlukan konten dinamis yang
|
|
dibuat oleh beberapa metode atau fungsi.
|
|
|
|
Kita memanggil [CController::renderDynamic()] untuk menyisipkan konten dinamis
|
|
di tempat yang diinginkan.
|
|
|
|
~~~
|
|
[php]
|
|
...konten HTML lain...
|
|
<?php if($this->beginCache($id)) { ?>
|
|
...konten fragmen yang ditembolok...
|
|
<?php $this->renderDynamic($callback); ?>
|
|
...konten fragmen yang ditembolok...
|
|
<?php $this->endCache(); } ?>
|
|
...konten HTML lain...
|
|
~~~
|
|
|
|
Dalam contoh di atas, `$callback` merujuk pada PHP callback yang benar. `$callback` bisa berupa string yang merujuk ke nama metode dalam kelas kontroler saat ini atau
|
|
fungsi global. `$callback` juga bisa berupa array yang merujuk ke metode kelas. Setiap
|
|
parameter tambahan pada [renderDynamic()|CController::renderDynamic()]
|
|
akan dioper ke callback. Callback harus mengembalikan konten dinamis daripada
|
|
menampilkannya.
|
|
|
|
<div class="revision">$Id: caching.dynamic.txt 163 2008-11-05 12:51:48Z weizhuo $</div> |