SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

Управління кешем

як уникнути непотрібної роботи серверу.

Juin 2015 — mis à jour le : Juillet 2015

Toutes les versions de cet article :


У попередніх уроках ми почали будувати кілька шаблонів. Наш сайт буде мати оглушливий успіх. Зупинімося на хвилину, щоб розглянути нейрони нашого бідного комп’ютера.

Резюме для тих, хто поспішає: у файлі tutorial.html замініть $delais=0; на $delais=3600;.

...

При запиті сторінки зі SPIP, він спочатку дивиться, чи вже була вона сформована раніше. Якщо посилання виглядає як http://yoursite.net/spip.php?id_article=12, то SPIP дивиться в свою піддиректорію tmp/cash/, щоб перевірити, чи існує такий файл, і якщо це так, то порівнює вік файлу зі значенням $delais, яке вказано у нашому файлі tutorial.html.

У нашому прикладі ми задали $delais=0;, що призводить до систематичного оновлення сторінки кожен раз, коли вона викликається. Давайте змінимо це значення на $delais=3600; (в секундах).

Тепер наша веб-сторінка генерується повторно тільки тоді, коли при її запиті відвідувачем виявляється, що кешована версія старіша за одну годину (тобто 3600 секунд). Якщо ні, SPIP просто читає вміст файлу в кеші [1] і повертає результат без підключення до бази даних (виконуючи лише запис в статистиці).

Яку затримку $delais треба встановити, щоб оптимізувати продуктивність сервера? Тут немає загального і чудового рішення, але не соромтеся задати затримку в один день (тобто $delais=24*3600;) та навіть більше для статей і рубрик. Найбільш значущі сторінки навігації можуть мати менше значення $delais (наприклад, двадцять хвилин або годину), якщо ваш сайт повинен реагувати на часті публікації новин і синдикованих сайтів. Якщо ви знаходитесь на загальному сервері, прийміть до уваги інших користувачів, і не встановлюйте коротку затримку для сторінок, які рідко змінюються: це буде не дуже розумним, оскільки для великих статей або оглядів оновлення сторінок може зайняти декілька секунд, що тільки сповільнить доступ до вашого сайту.

Як оновити примусово? Ми тільки вирішили встановити надзвичайно тривалу затримку для сторінки, аж раптом помічаємо орфографічну помилку. Після внесення виправлень в адміністративній частині, як можна негайно видалити помилку з загального сайту?

-  З адміністративної частини - натиснувши на кнопку «Перегляд онлайн». Кнопка запускає регенерацію сторінки відповідно #URL_ARTICLE або #URL_RUBRIQUE статті або рубрики. Це найбільш поширений метод оновлення.

-  В розділі «Обслуговування» адміністративної частини сайту - кнопка «очистити кеш» стирає всі файли з кешу. Це доречно, якщо ви внесли істотні зміни і ваш сайт дуже складний, але використовуйте інші способи в інших випадках.

-  Ще один простий спосіб полягає у використанні кнопки «Поновити сторінку», яка доступна для адміністраторів на загальному сайті. Цю кнопку буде видно, якщо ви вже використовували адміністративну частину з того ж самого комп’ютера, і на ньому записані cookies, що ідентифікують вас.

Повернутися до контексту: ми повертаємося тут до концепції контексту. Якщо шаблон викликається в контексті id_article, id_rubrique або id_breve і SPIP виявить адміністративні cookies, то буде видно іншу кнопку під назвою «Змінити цю статтю (або розділ, або новину)», яка з’явиться безпосередньо на відповідній сторінці редагування статті в адміністративній частині.

Останні деталі:
-  Зі зрозумілих причин, пошукова система не викликає оновлення кешу, а сторінки на форумі оновлюються, як тільки відправляється нове повідомлення.
-  cash директорія сайту розділена на 16 пронумерованих піддиректорій: 0, 1, 2 ... 9, A, B ... F, в яких кешовані файли розподілені випадковим чином; це називається «кеш хеш» і згадується тільки для повноти картини.
-  Кешовані файли використовуються навіть якщо база даних «впала», таким чином сайт гарантовано залишається доступним навіть у випадках зупинки серверу MySQL.

Notes

[1Для технічно мислячих: насправді PHP код включено до відповідного файлу, що й дозволяє виконати код з кеша.


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé