Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Что нужно прописать в .htaccess, чтобы браузер брал файл из кеша и не обращался к сер (http://www.flasher.ru/forum/showthread.php?t=176774)

Андрей911 17.03.2012 13:14

Что нужно прописать в .htaccess, чтобы браузер брал файл из кеша и не обращался к сер
 
Что нужно прописать в .htaccess, чтобы браузер брал файл из кеша и не обращался к серверу? Сейчас выставил настройки вот так
Код:

Options -Indexes
DirectoryIndex main.html
<filesmatch ".(jpg|gif|png|css|js|swf|html|xml|data|js)$">
ExpiresActive on
Header set Expires "access plus 1 year"
Header set Cache-Control "max-age=640800, private"
</filesmatch>

Но браузер все равно посылает запрос к серверу и получает ответ 304 Not Modified, после этого успокаивается и берет файл из кеша.
Как сделать чтобы файл читался сразу, без проверки были ли изменения?
Что надо для этого написать в .htaccess?

Tails 17.03.2012 13:24

Андрей911
Как-же браузер загрузит тогда страницу, если вообще не обратиться к серверу ? Что вы хотите сделать ?

Андрей911 17.03.2012 13:26

Цитата:

Сообщение от Tails (Сообщение 1069579)
Андрей911
Как-же браузер загрузит тогда страницу, если вообще не обратиться к серверу ? Что вы хотите сделать ?

Разумеется. Я имел в виду при повтором заходе посетителя на сайт, когда файлы уже есть в кеше.

Добавлено через 1 минуту
Я хочу чтобы браузер, если файл есть в кеше не обращался к серверу вообще, а просто брал его оттуда

Tails 17.03.2012 14:09

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

Кеширование с помощью файла .htaccess:
Цитата:

# Разрешение кеширования в этой папке
# Необходимо включение модулей
# mod_headers.c и mod_expires.c
#
# Заголовок Cache-Control
<IfModule mod_headers.c>
Header append Cache-Control \"public\"
</IfModule>
# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault \"access plus 1 hours\"
#ExpiresDefault \"access plus 10 years\"
</IfModule>
Источник: http://htmlweb.ru/php/htaccess.php

Цитата:

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

Андрей911 18.03.2012 08:35

Спасибо за ссылку. Нашел много полезного для себя. То что нельзя достать файл из кеша без обращения к серверу, заставляет задуматься над тем чтобы сделать один большой файл вместо нескольких мелких, которые подгружаются на основную страницу через iframe

kackbip 18.03.2012 16:17

Цитата:

Сообщение от Андрей911 (Сообщение 1069689)
Спасибо за ссылку. Нашел много полезного для себя. То что нельзя достать файл из кеша без обращения к серверу, заставляет задуматься над тем чтобы сделать один большой файл вместо нескольких мелких, которые подгружаются на основную страницу через iframe

Это не нужно делать. Любой браузер реализует кеширование статического контента. При повторном обращении статический контент берется из кеша. Но нужно смотреть настройки браузера - кеш может быть отключен, либо под него может быть выделено мало памяти. На сколько я помню, в html заголовке можно указывать expiration-date или что-то вроде того, чтобы браузер по прошестии указанной даты не использовал кеш этой html-ки. Ну вроде все.

Андрей911 18.03.2012 19:24

Здраствуйте, kackbip
Дак как раз выяснили, что браузер в любом случае обращается к серверу чтобы проверить изменился ли контент или нет. И если от сервера приходит ответ 304 Not Modified, то файл берется из кеша.
Поэтому, выгоднее использовать один iframe в котором собрать весь статический контент. Тогда будет всего один запрос на сервер


Часовой пояс GMT +4, время: 12:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.