Your SlideShare is downloading. ×
0
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Кэширование в Веб разработке на серверном и клиентском уровнях

85

Published on

Алексей Ярменко. Нагруженный форк

Алексей Ярменко. Нагруженный форк

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
85
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • {}
  • Transcript

    • 1. Кэширование в Веб разработке на серверном и клиентском уровнях (на примере связки MySQL + PHP) Докладчик: ЯРЕМЕНКО Алексей Сергеевич
    • 2. Зачем? ▪ Уменьшение времени отклика приложения (сайта) ▪ Уменьшение нагрузки на сервер ▪ Уменьшение генерируемого трафика ▪ Увеличение радости нашего пользователя
    • 3. Технология «клиент-сервер» Запрос выполняется по протоколу HTTP
    • 4. Возможные уровни кеширования Серверный Клиентский ▪ Запросы к БД ▪ Исполняемый код ▪ Статичные данные (HTML, JS, CSS, IMG) ▪ Результаты выполнения AJAX запросов ▪ Кэширование тяжелых данных на жестком диске ▪ Кэширование частых небольших данных в оперативной памяти
    • 5. Кэширование запросов к БД Почему иногда не срабатывает кэширование ▪ В MySQL запросы должны быть написаны идентично (учитывется даже регистр) ▪ При обновлении таблицы (INSERT, UPDATE) кэш сбрасывается Решение: Вынести часто изменяемые таблицы отдельно ▪ Не кэшируются запросы содержащие функции времени, даты, а так же некоторые другие Решение: заменить функции на константы WHERE `date` > NOW()  WHERE `date` > '2012-05-06‘ ▪ Помните про лимит памяти и фрагментацию
    • 6. Кэширование результатов работы на жестком диске ▪ Можно кэшировать HTML блоки часто вставляемые в код страницы или целиком страницы ▪ Готовые инструменты (например EZ cache) позволяют автоматически проверять наличие кэша, его свежесть и генерировать пути хранения файлов ▪ Правильно настроенный веб сервер может отдавать готовые HTML файлы очень быстро
    • 7. Кэширование данных в оперативной памяти (Memcache, APC) ▪ Можно кэшировать как результаты запросов к БД, результат сложных вычислений, а так же часто используемые HTML блоки небольших размеров ▪ Memcache в основном используется для организации единого кэша между серверами ▪ APC помимо данных кэширует PHP код
    • 8. Кэширование на стороне клиента ▪ Заголовок Expires говорит браузеру брать результат запроса из кэша до указанной даты Expires: Sun, 24 Jan 2013 20:59:20 GMT ▪ Результаты частых AJAX запросов можно сохранить в обычной переменной ▪ Склеивание JS, CSS и изображений в один файл чтобы минимизировать количество запросов к серверу
    • 9. Способы «оживления» страницы • В зависимости от Cookie при помощи JS показывать различные блоки (авторизован / не авторизован) • <script src="/comments.php?songid=12345"></script> • SSI: <!--#if expr="СТРАНИЦА ПЕСНИ" --> один вид рекламы <!--#elif expr="СТРАНИЦА ГРУППЫ" --> второй вид рекламы <!--#endif -->
    • 10. Спасибо за внимание! С удовольствием отвечу на Ваши вопросы!

    ×