Реалізація кешування на php
Відео: Заборона кешування за допомогою PHP
Відео: Створення власного фреймворка. Клас кешування. урок 11
Коли Ви робите проект, який має досить проблемними сторінками в плані швидкості їх завантаження, то треба проводити рефакторинг. Але бувають випадки, коли Ви все написали ідеально, проте, швидкість залишає бажати кращого. У таких випадках допоможе кешування сторінок. Тому я вирішив написати статтю про реалізації кешування на PHP.
Перш ніж показувати код, Ви повинні заздалегідь усвідомити алгоритм. Кешування - це просто збереження згенерованої сторінки в окремий файл. Тобто отримали HTML-код сторінки і зберегли його в окремий файл. Потім при наступному зверненні до скрипту заново сторінка не генерується, а береться HTML-код з цього файлу. Зрозуміло, якщо при генерації мова може йти навіть про десятки секунд (буває і таке), то тут мова йде про сотих частках секунди. Різниця очевидна.
Тепер сам код. Вам потрібно створити 2 спеціальні файли. Перший файл буде займатися виведенням кеша, а другий - створенням кеша.
Почнемо з першого файлу, який назвемо read_cache.php:
Відео: Урок 5. Кешування
lt ;?php
$ cache_time =300-// Час життя кешу в секундах
$ file = strrchr($ _SERVER["SCRIPT_NAME"],"/") -// Отримуємо назва файлу
$ file = substr($ file,1) -// Видаляємо слеш
$ cache_file ="/cache/$file.html"-// Файл буде знаходитися, наприклад, в /cache/a.php.html
if(file_exists($ cache_file)){
// Якщо файл з кешем існує
if((time()- $ cache_time)lt; filemtime($ cache_file)){
// Якщо його час життя ще не пройшло
echo file_get_contents($ cache_file) -// Виводимо вміст файлу
exit-// Завершуємо скрипт, щоб заощадити час на подальшій обробці
}
}
ob_start() -// Відкриваємо буфер для виведення, якщо кеша немає, або він застарів
?gt;
В даному скрипті ми отримуємо ім`я файлу, потім перевіряємо чи існує такий кеш і не застарів він, а потім або виводимо його і закінчуємо роботу, або відкриваємо буфер, куди будемо розміщувати всю вихідну інформацію скрипта.
Відео: 012. Кешування на клієнті і сервері - Єгор Львівський
Тепер створимо файл write_cache.php, який буде займатися записом в файл того, що у нас накопичилося в буфері:
lt ;?php
$ handle = fopen($ cache_file,`W`) -// Відкриваємо файл для запису і стираємо його вміст
fwrite($ handle, ob_get_contents()) -// Зберігаємо весь вміст буфера в файл
fclose($ handle) -// Закриваємо файл
ob_end_flush() -// Виводимо сторінку в браузері
?gt;
І тепер в будь-якому PHP-файлі на сайті, що відповідає за виведення сторінки, можна включити кешування наступним чином:
lt ;?php
require_once "Read_cache.php"-// Намагаємося вивести вміст кеша
// Тут йде звичайна генерація сторінки
require_once "Write_cache.php"-// Тут йде збереження згенерованої сторінки в кеш
?gt;
Таким чином, тепер Ви можете всі свої проблемні сторінки почати кешувати. Але не забувайте, що поки кеш живе, будь-які оновлення користувач бачити не буде. Тому робіть кешування на PHP тільки для тих сторінок, які рідко оновлюються.
- Налаштування internet exprlorer. Налаштування реєстру. Системний реєстр windows. Оптимізація та…
- Кращі проксі сервери linux
- Синій екран смерті 0x0000007e
- Синій екран смерті 0x0000001e
- Як дізнатися версію squid
- Чому веб-сторінки з кожним роком завантажуються все повільніше
- Thumbs db що це таке?
- Як використовувати файли tpl
- Як зробити чпу-посилання
- Як відключити кешування на php
- Що таке фреймворк?
- Як створити движок для сайту
- Що таке рефакторинг?
- Stop 0x000000ie - kmode_exception_not_handled
- Яка різниця між post і get
- Створення винятків в php
- Nodejs. Потоковий висновок html сторінки.
- Системні налаштування joomla
- Чи варто використовувати gzip
- Читання ini-файлу в php
- Сервіс по генерації трикутників.