mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-14 14:28:27 +08:00
37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
Sahifalarni keshlash
|
|
=================
|
|
|
|
Sahifalarni keshlash — bu sahifadagi butun ma'lumotni server tomonida keshda saqlashga aytiladi. Keginchalik sahifani serverdan
|
|
talab qilsak bizga sahifadagi ma'lumotni keshdan qaytaradi.
|
|
|
|
Sahifalarni keshlash [harakat filtrlari](structure-filters.md) [[yii\filters\PageCache]] yordamida amalga oshiriladi va
|
|
kontroller sinfida quyidagi shaklda ishlatilishi mumkun:
|
|
|
|
```php
|
|
public function behaviors()
|
|
{
|
|
return [
|
|
[
|
|
'class' => 'yii\filters\PageCache',
|
|
'only' => ['index'],
|
|
'duration' => 60,
|
|
'variations' => [
|
|
\Yii::$app->language,
|
|
],
|
|
'dependency' => [
|
|
'class' => 'yii\caching\DbDependency',
|
|
'sql' => 'SELECT COUNT(*) FROM post',
|
|
],
|
|
],
|
|
];
|
|
}
|
|
```
|
|
|
|
Keltirilgan kodda kesh faqat indeks harakati uchun amalga oshiriladi. Nazarda tutulgan sahifa 60 sekundga
|
|
kesh qilinadi va dasturning joriy tiliga ko'ra o'zgarib turadi. Kesh qilingan sahifa muddati o'z o'zidan
|
|
o'zgaradi. Agarki shahrlarning umumiy soni o'zgarsa.
|
|
|
|
Sahifalarni keshlash [fragmentlarni keshlashga](caching-fragment.md) juda o'hshaydi. Ikki holatda ham `duration` `dependencies`
|
|
`variations` va `enabled` parametrlari qo'llaniladi. Asosiy farqi shundaki sahifalarni keshlash [harakat filtri](structure-filters.md) shaklida
|
|
amalga oshiriladi. Fragmentlarni keshlash esa [vidjet shaklida](structure-widgets.md) amalga oshiriladi.
|