Пропустить / пропустить файл кэша SERVER / кэширование, если в URL есть строка запроса? - PullRequest
0 голосов
/ 20 января 2012

У меня есть домашняя страница как index.php, и она дает список из 10 товаров / продуктов.

Теперь я использую ту же страницу, что и целевая страница, для входящего трафика с Facebook.URL выглядит как index.php?productID=Q231 На этой странице отображается продукт, содержащий только указанный идентификатор.

Мне известно о кэшировании вывода PHP, но я новичок.Я узнал, что если я кеширую index.php, он будет обслуживать один и тот же кешированный файл для всего входящего трафика из Facebook.

  1. Правильно ли мое понимание?Я много об этом искал, но мне не ясно, как можно было бы кешировать с этим экземпляром.
  2. Есть ли способ пропустить или обойти файл / кеширование серверного кэша, если в URL есть строка запроса?

Буду очень признателен, если кто-нибудь даст мне несколько указателей.

Ответы [ 3 ]

1 голос
/ 20 января 2012

Это действительно зависит от вашей модели кэширования и от того, как вы обрабатываете это в своем коде.

Если вы создаете все это с использованием буферизации вывода, вы можете использовать такой метод, как:

  • Создание ключа кэша на основе запрошенного сценария и / или параметров запроса, т.е. с использованием productId в вашем случае
  • Проверьте, не сохранили ли вы выходные данные для данного ключа в каком-либо постоянном хранилище
    • Если да, выведите
    • Если нет, используйте выходной буфер, сгенерируйте его содержимое, сохраните в постоянном хранилище и сохраните под созданным индексом кэша и выведите

Гугл приводит этот элементарный пример: http://www.devshed.com/c/a/PHP/Output-Caching-with-PHP/

0 голосов
/ 21 января 2012

Вы используете кеширование вывода.Затем вы должны очистить кеш, когда ваши ссылки на Facebook или Twitter звонили.В codeigniter (Framework of PHP) я сделал это, очистив кеш.

В ядре PHP я не знаю, как очистить кеш.Но должно быть несколько способов очистить кеш.Так что попробуйте.

Здесь некоторые ссылки могут быть вам полезны.

Как очистить кеш браузера с помощью php?

http://php.net/manual/en/function.clearstatcache.php

http://www.dreamincode.net/forums/topic/6519-clear-cache/

0 голосов
/ 20 января 2012

если я не ошибаюсь, кеширование не основано на реферере.Внутреннее php-кэширование предназначено только для оптимизации кода, оно не будет кэшироваться, т.е.«внешние» системы кэширования, такие как встроенное кэширование в smarty, например, output.Я думаю, вам нужно только «отключить» кеширование для браузеров, что будет означать отправку правильных заголовков с header(...)

...