Я изучаю сейчас сайтостроение и читаю книги по этой теме и много информации идет о кеше, а что это такое нигде не пишут. Скажите пожалуйста что такое кеш и что он делает.
Допустим, ползователь набирает в адресной строке браузера адрес http://someserver.com/support.html. Сервер находит у себя файл support.html и отдает его клиенту. Пользователь запросит еще несколько страниц и потом вернется на страницу support.html. Браузер не будет снова запрашивать эту страницу у сервера, а возьмет ее из кэша. Т.е. этот файл (support.html) браузер сохранят на винчестере пользователя. Аналогичную задачу решает Proxy-сервер.
Это для статичных страниц. По поводу динамических - нет смысла их кэшировать, это даже вредно. Ведь мы не знаем, КАК скрипт генерирует эту страницу. И даже если запрашивается вроде бы один и тот же файл http://someserver[dot]com/support.php нельзя сказать, что скрипт сформирует одинаковый HTML (он может зависеть, например, от времени суток).
Теперь по поводу кэширования средствами PHP. Зная, что данная страница, которая генерится скриптом, изменяется раз в сутки (например, ежедневное добавление новостей в раздел "Новости компании") мы можем, один раз сформировав HTML, сохранить его в файл, и отдавать пользователю, читая страницу из файла, а не формируя каждый раз динамически (т.е. выполняя запросы к БД и т.п.) Тем самым снижая нагрузку на сервер.
Вопрос! Сейчас читал на сайте еще раз о функциях! Не понял одного ! Вот я не пойму, в функции обработкии сообщения переменная ведь не обьявлена глобальной и не нет возврата, тогда как оно может изменять сообщение, и расскажите пожалуйста поподробнее!
Iframe как таковой имеет две ипостаси -- HTML-объект (подобно <div> ) и окно (типа window). К первой ипостаси мы обращаемся через document.getElementById(...), а ко второй -- через window.frames[...]. Поэтому бессмысленно пытаться обращаться к стилям у window.frames['myiframe'] или менять location у document.getElementById('myiframe'). Хотя у "ифрейма" как HTML-объекта есть свойства contentDocument (Mozilla практически вся, Opera 7+) и contentWindow (Mozilla 0.9.4+, MSIE 5.5+. Все Оперы включая 7.50 - не поддерживают), обратившись к которому, мы получаем содержащийся в ифрейме документ или окно. У contentDocument есть "обратное" свойство - defaultView (Mozilla, MSIE 5.5+, Opera 7+). Т. е.
iframe.contentDocument.defaultVi ew == iframe.contentWindow
Это какой-то кошмар!!Я ничего не поняла!!Эти права доступа устанавливаются в php-файле?
Права доступа - это атрибуты файла или каталога, которые указывают серверу, кто и что может делать с соответствующим файлом или каталогом. Обычно, права доступа регламентируют такие действия как чтение, запись в файл (или каталог), исполнение.
В системах UNIX все пользователи разделяются на три группы: "user" (непосредственно владелец файла), "group" (член той же группы, к которой принадлежит владелец файла) и "other" (все остальные). Когда вы соединяетесь с сервером, он определяет к какой группе вы относитесь. Например, подключаясь к серверу по FTP, вы входите под своим именем пользователя, соответственно сервер относит вас к группе "user". Другие пользователи, подключаясь по FTP, будет отнесены к группе "group", а когда человек попадает к вам на сайт через свой браузер, то попадает в группу "other".
После определения группы, пользователь получает права на действия с объектами. Т.е он может прочитать, записать или выполнить файл. Чтобы просмотреть каталог, он должен быть исполняемым; чтобы просмотреть его содержимое, он должен иметь атрибут чтения, а чтобы создать новый файл или каталог в существующем каталоге, необходимо иметь право на запись. Таким образом, чтобы выполнялось приложение или CGI скрипт, необходимо установить атрибут чтения и выполнения.
Чтобы распределить права для соответствующих групп, используются цифровые обозначения:
4 = read (право на чтение)
2 = write (право на запись)
1 = execute (право на выполнение)
Простым сложение цифр можно добиться установления прав на совокупность действий. Например, 3(2+1) разрешает запись и выполнение файла (каталога); 5(4+1) разрешает чтение и выполнение; 6(4+2) разрешает чтение и запись; 7(4+2+1) устанавливает право чтения, записи и выполнения. Т.е всего семь вариантов:
Первая цифра в обозначении устанавливает права для группы "user"(т.е фактически для вас), вторая для группы "group" и третья для "other":
755
для user - read, write & execute
для group - read & execute
для other - read & execute
Для установления прав доступа используется команда CHMOD. Во всех современных FTP клиентах присутствует возможность назначения прав доступа путем простановки "галочек" в чекбоксах, либо просто введением цифрового кода в соответствующее поле.
Команда "chmod" имеет два режима: Абсолютный(цифровой) и Символьный режим.
При Абсолютном (цифровом) режиме используется описанный выше 3-х цифровой код прав доступа. Символьный режим использует буквенный формат для установки прав доступа. Здесь используются буквы "r", "w" и "x" для read, write и execute соответственно. А также "u", "g", "o" и "a" для user, group, other, и all(все) соответственно.
Пивом? Благо не кровью... мда... А я предлогаю еще один способ 100% антикеширования нужно к адресу странич добавлять "&".time(); тогда каждая страничка будет расматриватся сервером как "нечто новое"
Для полного запрета кэширования приходиться всегда посылать 4 указанных заголовка, и ни один пропустить нельзя - в противном случае не сработает либо браузер, либо Proxy-сервер.
Это что метод научного тыка , при исправлении проблем ?
Мне его "научный тык" в два часа рабочего времени обошелся. Сначала БД и таблицы создал. Дальше хуже - половина экрана в сообщениях об ошибках. Основные исправил, что-то закомментировал. И только потом разбираться начал...
Ну ты орел. Сначала включил кэширование
session_cache_limiter("public");
а потом удивляешься "А что же страница не обновляется?". Спрашивается, зачем использовать функции, назначения которых не понимаешь?
P.S. Проверил - Firefox работает только если строка
session_cache_limiter("public");
закомментирована. А MS IE работает в любом случае - есть ли кэширование или нет. Почему - не знаю.