2012-02-05 4 views
1

У меня возникают проблемы с моим сайтом, так как он выполняет множество SQL-запросов, поэтому он довольно медленный, и при нажатии на один из элементов на странице перезагружается вся страница.Кэширование сайта, так что он не перезагружается

Вот пример: Example

При открытии страницы в первый раз, это займет некоторое время. Затем, когда вы нажимаете на опции сортировки, такие как «3Way», «Over/Under», «Asian Handicap» и т. Д., Это снова займет тот же промежуток времени, что и страница будет перезагружена вместе с левыми & правыми столбцами и верхним меню.

Но если вы нажмете один из этих вариантов сортировки, он будет очень быстрым, так как страница будет кеширована.

Я бы хотел, чтобы статические элементы (те, которые не изменены) не перезагружались. Автоматически, если это возможно. Если нет, я хотел бы иметь возможность назначать вручную, какие элементы перезагружаются, а какие нет.

Кроме того, если на примере URL, который я вам дал, нажмите «Переключить/Под», прокрутите вниз до 1,75 и щелкните маленькую стрелку рядом с надписью «ПЕРЕДАЧА 1.75», страница перезагрузится и отправит вас наверх. Я не хочу, чтобы он был наверху, но результаты должны быть отсортированы без перегрузки страницы.

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

Веб-сайт написан на PHP/HTML/CSS, это динамический сайт, получающий все результаты из базы данных SQL объемом 3 ГБ с использованием запросов.

Заранее спасибо, если кто-то может мне помочь, тем более, что описание, которое я дал, довольно общий. Я могу дать код, если это необходимо, но не знал, какая часть будет полезна.

ответ

2

Вы можете использовать Varnish для кэширования веб-страниц. Лак - это HTTP-прокси, который находится перед веб-сервером. Требуется некоторое время & знаний, чтобы настроить его, но это очень хороший кусок программного обеспечения.

В качестве альтернативы вы можете кэшировать результаты SQL в памяти с использованием shared memory, memcache или redis.

И для достижения наилучших результатов вы можете комбинировать обе техники!

0
  1. Первое, что кеширование зависит от того, как часто данные вы хотите показывать пользователю.
  2. Отлаживать сценарий и проверять, действительно ли вам нужно слишком много SQL-запросов. Попытайтесь уменьшить.
  3. Избегайте группировки, объединяет, упорядочивает по условию.
  4. проверьте свои индексы MySQL.
  5. После того, как все в MySQL начнет выполнять кеширование.
  6. Кэшированные данные с использованием файла, memcache, даже вы можете попробовать mongoDB.
0

Вы выбрали неправильную формулировку.
И, таким образом, сделал обычный такой тип, который читал только название, но никогда не беспокоился о вопросе тела, делал неправильные ответы.

Вам не нужно кэшировать, но некоторые AJAX/Javascript. Например, сортировка таблицы по некоторым столбцам является тривиальной задачей для javascript. Обратите внимание, что это работает только в том случае, если целая таблица на одном экране. В противном случае вы все равно перезагрузите страницу.

Кроме того, ваша идея улучшить скорость загрузки сайта совершенно неверна.
Во-первых, для статических элементов не имеет значения, перезагружаются они или нет - оба будут быстрыми. Далее, лучше всего оптимизировать свои запросы, а не кэшировать весь сайт. Наконец, я бы сказал, что у вас есть профиль ваш сайт первым, найдите самые медленные элементы, а затем выполните определенные шаги по оптимизации скорости.

+0

Ни одна из таблиц не вписывается в один экран, что означает, что он не будет работать должным образом. Запросы оптимизированы так, как они могут быть, единственное другое решение состоит в том, чтобы запускать их все как задание cron, а затем экспортировать результаты из XML и читать оттуда, когда страница запрашивает его. Самая медленная часть веб-сайта - это запросы, и тот факт, что страница перескакивает вверх на перезагрузку, вызывает раздражение, поэтому она добавляет проблемы. Я все еще не понимаю, почему страница перезагружает все столбцы - даже те, которые не изменяются (хотя они динамические). –

Смежные вопросы