2013-05-04 2 views
-1

Я пытаюсь понять кеширование PHP. Я использую Symfony 2 и пытаюсь собрать что-то вместе.Понимание кэширования PHP - что происходит с JavaScript? - using Symfony2

Изображение кэша шлюза или обратного прокси-кеша, который кэширует полную страницу. Как на это влияет JavaScript?

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

Так что для меня лучшим способом было бы то, что только кэшируется HTML, а затем JS запускается после этого в любом случае (и, без сомнения, файлы JS уже кэшированы). Или делает вид скриншота, и если страница кэшируется с половиной разборных панелей, открытыми и полузакрытыми, тогда они всегда будут выглядеть так (до тех пор, пока кеш не будет очищен).

Я пытаюсь работать, если ESI лучше, или как я должен что-то создавать, чтобы иметь возможность использовать кеширование, но при этом сохранять определенные динамические функции. Лучшим способом было бы кэшировать все HTML и разрешить JS, CSS и все остальное снова запускать из кэшированного файла JS/CSS, что бы это ни было.

ответ

1

Любое кэширование связано с тем, как данные поступают с сервера на клиент (например, в веб-браузер); это не имеет никакого отношения к тому, как данные интерпретируются клиентом. (Подумайте о очень медленном PHP-скрипте, который выводит текстовый файл, для которого используется текстовый файл, не имеет значения, это медленный PHP, который вы избегаете с кешем.)

Вы не можете кэшировать экранную визуализацию HTML-страницу, потому что это рендеринг полностью является работой браузера (поэтому разные браузеры могут отображать разные вещи). Выполнение JS аналогично отображению HTML - части интерпретации содержимого браузера.

Таким образом, ответ на ваш вопрос заключается в том, что кеширование не будет иметь никакого значения для вашего JS вообще.

1

Кэш только сохраняет HTML-код, поскольку он доставляется сервером. Если javascript изменяет DOM, DOM, который кэшируется, не подвержен влиянию javascript. Javascript будет запускаться каждый раз, независимо от того, будет ли HTML подан «свежим» или из кеша. В значительной степени единственная проблема, с которой вам приходится беспокоиться в кэшировании, - убедиться, что кеш обновляется, когда это необходимо, поэтому вы не используете «устаревший» кеш.

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