Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Куда уходит кеш? (https://javascript.ru/forum/misc/57076-kuda-ukhodit-kesh.html)

Urfin 18.07.2015 00:45

Куда уходит кеш?
 
Изучая работу мобильного Вконтакте,
набрел на интересный момент кеширования, который не могу понять, как делается. Может кто из здешних корефеев поможет разгадать загадку, где прячется кеш.

Опишу порядок действий.
Итак, находясь в списке новостей, мы кликаем на фото в ленте.
Всплывает попап с фоткой.
В коде html попап загружается в див с id="z".
В момент первого клика по фотке в ленте, идет запрос к серверу.
При закрытии попапа, "div" с id="z" очищается, куда уходит содержимое невидно.
При последующих кликах на этой фотке, запроса к серверу не происходит, все грузится из кеша, но где хранится этот кеш не понятно. В дереве DOM его не нахожу.
Кто сможет описать секрет хранения кеша?

Aetae 18.07.2015 01:02

Значит вне дерева DOM, в обычной переменной. Какие проблемы то.:)

Urfin 18.07.2015 01:54

Хм, вообще да. Наверно так можно.
Почему то не приходило в голову.
Надо будет попробовать.

Aetae 18.07.2015 01:56

Пока есть ссылка - объект(и элемент втч) живёт. Хотя конечно в случае затирания с помощью innerHTML браузеры действуют по-разному.)

Urfin 18.07.2015 02:22

Ну наверно в замыкании надо хранить. Поэкспериментирую.

KosBeg 18.07.2015 10:07

Цитата:

Сообщение от Urfin
Изучая работу мобильного Вконтакте

не один я такой :dance:
Цитата:

Сообщение от Urfin
все грузится из кеша, но где хранится этот кеш не понятно

правда меня удивляло следующее:
загрузили мы список новостей и отключили инет, после этого смело кликаем по постам и запрос к сети идет только для получения коментов аяксом, при этом меняется адрес(при помощи PushState), я долго думал как это делается - в итоге всеже разобрался)
PS: а что мешает разобрать сам скрипт-исходник? - http://m.vk.com/js/s_c.js?256
ну и что что он минифицированный? сначала проганяем скрипт через http://jsbeautifier.org/ а потом то что получилось через http://jsnice.org/ и все понятно :dance:


Часовой пояс GMT +3, время: 05:38.