Intereting Posts
Использование файла cookie для удаления и добавления classов в список элементов Изображения толпы в той же ячейке таблицы HTML Скрытие панелей инструментов вокруг встроенного pdf? Остановить автоматическую прокрутку при изменении содержимого страницы Использовать множественные аргументы «отношения» в функции постфактора AJAX Карта изображения по альфа-каналу Получение высоты фонового изображения с помощью «background-size: содержать» Программно открыть раскрывающееся меню Как печатать HTML-контент одним нажатием кнопки, но не страницей? Сохранять значения, выбранные после отправки формы Боковая панель Bootstrap с фиксированным нижним колонтитулом и прокручиваемым div Лучший способ хранения & (Амперсанд) в базе данных MySQL Использование JSF EL в простом атрибуте HTML Различные стили для одного и того же имени classа, но разные идентификаторы Как выделить различия между 2 html-файлами

Какого типа кеширования я должен использовать?

У меня есть сайт объявлений, в котором используются PHP и MYSQL.

У меня есть несколько страниц, которые также используют javascript.

Мне нужно знать, какого типа кеширования использовать для повышения производительности на моем сайте … Существует множество «постоянных» изображений, таких как меню, боковые панели, фоновые изображения, которые, вероятно, могут быть кэшированы в некотором роде.

Знаете ли вы, что веб-браузеры автоматически кэшируют эти изображения или мне нужно написать часть кода для этого?

Мне нужно руководство в правильном направлении …

Кроме того, есть способ как-то кэшировать большие функции php? (например, когда вы открываете приложение в windowsх, приложение каким-то образом кэшируется, и в следующий раз, когда вы его откроете, он откроется намного быстрее, если вы не запустили свой компьютер.)

благодаря

Вы можете использовать mod_expire (если вы используете apache в качестве веб-сервера), чтобы установить заголовок HTTP с истечением срока действия на ваш статический контент (js, images, favicon, plain HTML), чтобы браузер не запрашивал этот объект до истечения срока его действия. В зависимости от вашего хостинга и вашей аудитории может быть хорошей идеей использовать сервис как akamai для размещения вашего статического контента (изображений, css, javascript).

Для того, чтобы повысить производительность серверной части (PHP), вам необходимо определить узкие места. Хорошим подходом для этого является реализация некоторых протоколов на вашем сайте (SQL-запросы и сколько секунд для получения результатов, какая страница наиболее просматривается, какая функция занимает больше всего времени). Вы позволите этому запустить несколько недель / дней. Проанализируйте это, и вы узнаете, какие запросы SQL к кешу, какая функция для рефакторинга.

Если вы спешите, быстрый и грязный подход состоит в том, чтобы получить 10 самых популярных страниц и кэшировать их на диске. Это сработает, но если ваш сайт действительно динамичен и нуждается в информации почти в режиме реального времени, вы часто будете делать недействительным этот кеш. Также он может создать проблему, если на вашем веб-сайте есть какой-то процесс входа в систему / выхода из системы. Другой подход заключается в кешировании некоторой части этой страницы, обычно более дорогостоящей для производства (DB / access, сложная обработка).

С точки зрения инструментов, которые вы можете использовать на PHP для обработки таких кешей:

  • APC : этот инструмент имеет некоторую функцию кеширования, плюс предварительную компиляцию PHP
  • memcached : система с ограниченным кэшированием
  • eAccelator : предварительная компиляция
  • xcache : предварительная компиляция

Для сайта, который я недавно запустил, я написал код, использующий ob_start (), чтобы кэшировать мои PHP-файлы на плоский HTML. Вот пример:

$cacheFile = 'cache/home.html'; $cacheTime = 600; if (file_exists($cacheFile) && time() - $cacheTime < filemtime($cacheFile)) { require $cacheFile; } else { ob_start(); // Your dynamic code $fp = fopen($indexCacheFile, 'w'); fwrite($fp, ob_get_contents()); fclose($fp); ob_end_flush(); } 

Сайт был около месяца, и он совершил большой трафик. Вышеупомянутый код несколько раз сохранил мой сервер.

Вы можете использовать кеширующий прокси, например Squid или какой-то ускоритель PHP . Кроме того, кэширование результатов запросов MySQL может быть хорошей идеей, если данные, которые вы запрашиваете, не сильно меняются.

Как отметил еще один ответ, статический контент, как правило, кэшируется браузерами пользователей, если временные метки в файлах не меняются.