Укрощение @Интернет@

Метод локального кэша


Большинство браузеров поддерживают кэширование страниц т.е. сохраняет их содержимое во временных файлах для ускорения последующих обращений. До тех пор пока кэш не будет затерт новыми поступлениями, ранее загруженные страницы можно смотреть и без подключения к Интернету. В Internet Explorer-e для этого достаточно установить галочку напротив пункта "Работать автономно" в меню "Файл". Разумно увеличить размер кэша, чтобы избежать его скорого затирания. Он задается ползунком "Папка временных файлов Интернета: занимать на диске не более" ("Сервис" à "Свойства обозревателя" à

"Временные файлы Интернета" à

"Настройка"). Оптимальное значение лежит в пределах 300 – 500 мегабайт, только помните, что в действительности потребуется гораздо больше места, особенно на FAT16, т.к. web-страницы содержат огромное количество мелких файлов, а каждый файл независимо от своего размера занимает, по крайней мере, один кластер диска.

Разумеется, кэш – крайне ненадежное место хранения для ценных web-страниц, кроме того, как быть, если потребуется сохранить страницу на дискету или передать другу, у которого вообще нет Интернет?

Если временные файлы записываются "как есть", без всяких там поползновений, их можно без труда "выдернуть" из кэша и сохранить отдельно (см. "Где Internet Explorer хранит автономные страницы?"). Единственная проблема - определить какие именно файлы среди сотен, а то и тысяч остальных следует сохранять.

Первым делом необходимо найти саму страницу – как правило, ее имя совпадает с именем htm файла в URL. Т.е. если ссылка на страницу выглядела как "http://mysite/nasa/hubble.htm", то в кэше следует искать файл hubble.htm. У Internet Explorer есть одна особенность – во избежание затирания одноименных файлов, к концу имени каждого из них он дописывает порядковый номер, заключенный в угловые скобки (типа nubble[666].htm), поэтому, правильный шаблон для поиска должен выглядеть так: "Имя файла*.расшрение", например, "Hubble*.htm".


Теперь перейдет к соби ранию картинок. Чтобы определить их имена, откройте html-странницу в любом подходящем текстовом редакторе, например, "Блокноте" и задайте поиск тегов "IMG". В общем виде тег должен выглядеть так: "<IMG SRC="image/rose.jpg">". Выражение, стоящее права от "SRC", как не трудно догадаться, и содержит искомое имя файла. Ищем его в кэше и "выдираем". Один тонкий момент – куда этот файл сохранить. Если его поместить в одну директорию с самой html-страницей, он отображаться не будет! Ведь "SRC" указывает браузеру, что картина расположена в директории "image"! Значит, необходимо создать директорию "image" в том же каталоге, в котором лежит страница, и поместить в нее злополучный файл. Еще одна тонкость – если путь выглядит как "../image/pic/mimose.fig", это означает, что директория image располагается на один уровень выше чем та, в которой лежит html-страница. Т.е. древо каталогов должно выглядеть так:

MyDir

 +--dir_for_html

 ¦  L--hubble.htm

 L--image

    L--pic

       L--mimose.jpg

Если путь "SRC" начинается с указания протокола (например, SRC="http://mysite.com/image/ngc1976.gif"), необходимо текстовым редактором вырезать все лишнее – т.е. все кроме имени файла, иначе браузер будет обращаться не к локальному файлу, а попытаться получить его из Интернета.

Раз уж мы начали резать, то имеет смысл оттяпать от всех картинок полные пути, оставив только имена файлов (например, было "../image/pic/mimose.fig" стало "mimose.fig") – это избавит от необходимости воссоздавать оригинальную структуру каталогов сервера и позволит валить все файлы в одну директорию.

Единственная проблема заключается в том, что не всегда ясно какой из нескольких файлов следует "выдирать" из кэша. Скажем, требуется заполучать pic.jpg, а в кэше содержится добрый десяток файлов с такими именами – pic[1].jpg, pic[2],jpg, pic[3],jpg и т.д. Можно попробовать, поочередно открывая их, попробовать определить какой из них какой – визуально, по смыслу. Однако это удается далеко не всегда. К тому же описанный метод достаточно трудоемок и долог. Может, есть что попроще?


Содержание раздела