Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Доступ к скаченным картинкам браузером (https://javascript.ru/forum/events/84382-dostup-k-skachennym-kartinkam-brauzerom.html)

Andy_kun 23.08.2022 20:10

Доступ к скаченным картинкам браузером
 
Подскажите пожалуйста, вот к примеру я пишу в браузере cyberforim.ru.

Браузер в процессе загрузки страницы - запрашивает и "скачивает" все ресурсы - картинки, текст и видимо хранит в оперативной памяти процесса браузера.

Вот такой вопрос, а можно ли, как то с помощью JS - получить доступ к этим уже скаченным к примеру картинками ? То есть получить эти картинки в какой нибудь буфер Javascript - без дополнительного xmlhttprequest`а ?

Aetae 23.08.2022 22:01

Andy_kun, постфактум - нет. Но xmlhttprequest достанет их из кэша, а не скачает заново.

Если заранее зарегать serviceworker, то можно руками залезть в механизм кэша и что-нить с ним делать.

Andy_kun 23.08.2022 22:50

Цитата:

Сообщение от Aetae (Сообщение 547545)
Andy_kun, постфактум - нет. Но xmlhttprequest достанет их из кэша, а не скачает заново.

Если заранее зарегать serviceworker, то можно руками залезть в механизм кэша и что-нить с ним делать.

Спасибо!
То есть у serviceworker`а - есть API, которое позволит это сделать ?

Rise 23.08.2022 23:43

Цитата:

Сообщение от Andy_kun
все ресурсы - картинки, текст и видимо хранит в оперативной памяти

Они хранятся на диске в зашифрованном виде. Это хранилище называется cache.

Цитата:

Сообщение от Andy_kun
как то с помощью JS - получить доступ

Никак, это приватные данные.

Andy_kun 23.08.2022 23:56

Цитата:

Сообщение от Rise (Сообщение 547557)
Они хранятся на диске в зашифрованном виде. Это хранилище называется cache.


Никак, это приватные данные.

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

Для примера: когда вы загружаете видео с ютуб - и когда оно у вас загрузилось - вы имеет возможность перемещаются по диапазону видео - вот уж точно - это видео хранится не на жёстком диске.

Rise 24.08.2022 00:12

Цитата:

Сообщение от Andy_kun
когда вы загружаете видео с ютуб

Картинки и текст вам уже не нужны? Теперь вам нужно получить доступ к видео с ютуба?

MallSerg 24.08.2022 01:21

Ссылки на все скаченные страницой изображения хранятся в массиве
document.images

Andy_kun 24.08.2022 08:48

Цитата:

Сообщение от Rise (Сообщение 547563)
Картинки и текст вам уже не нужны? Теперь вам нужно получить доступ к видео с ютуба?

Нет, я привел лишь пример. А для Вас сразу появилось различие между видео, текстом и картинками и соответвенно зашифрованным кешом ?

Andy_kun 24.08.2022 08:50

Цитата:

Сообщение от MallSerg (Сообщение 547564)
Ссылки на все скаченные страницой изображения хранятся в массиве
document.images

А где в этих ссылках - ссылка на сам буффер в котором хранится информация - пиксельная, если это картинка или текстовая, если это текст ?

voraa 24.08.2022 09:34

Вопрос был
Цитата:

Сообщение от Andy_kun
Вот такой вопрос, а можно ли, как то с помощью JS - получить доступ к этим уже скаченным к примеру картинками ?

А на какой странице и откуда вы этот js запускать собираетесь.
Js имеет доступ только к картинкам (к пикселям), которые загрузились на той же странице, что и сам скрипт, и пришли с того же домена, что и сама страница.

Andy_kun 24.08.2022 09:46

Цитата:

Сообщение от voraa (Сообщение 547569)
Вопрос был
А на какой странице и откуда вы этот js запускать собираетесь.
Js имеет доступ только к картинкам (к пикселям), которые загрузились на той же странице, что и сам скрипт, и пришли с того же домена, что и сама страница.

На загруженной странице и собираюсь запускать "этот" Js-скрипт.
То есть, как и я написал с самого начала - браузер в процессе загрузки Страницы - загружает ресурсы в оперативную память.

Как получить с помощью Js - доступ к буферам этих загруженных ресурсов ? Ну для примера на примере загруженных картинок ?

Rise 24.08.2022 12:04

Цитата:

Сообщение от Andy_kun
Нет, я привел лишь пример.

Вы название темы своей прочитайте.

Andy_kun 24.08.2022 12:20

Цитата:

Сообщение от Rise (Сообщение 547574)
Вы название темы своей прочитайте.

С какой целью ?

voraa 25.08.2022 09:36

Цитата:

Сообщение от Andy_kun
То есть, как и я написал с самого начала - браузер в процессе загрузки Страницы - загружает ресурсы в оперативную память.

Как получить с помощью Js - доступ к буферам этих загруженных ресурсов

Никак.
Если картинки только пример, а нужны все данные "вообще"
Если нужны именно картинки, и они грузятся на странице с ващего же сервера, то можно получить доступ к пикселям картинки.
Надо вставить картинку в canvas и взять из canvas ImageData

voraa 25.08.2022 09:39

Цитата:

Сообщение от Andy_kun
С какой целью ?

Что бы самому понять свой вопрос.
Вы спрашиваете про картинки. То, что это только пример, никто догадываться не будет.
Правильно заданный вопрос - половина ответа.

Andy_kun 25.08.2022 23:09

Цитата:

Сообщение от voraa (Сообщение 547601)
Никак.
Если картинки только пример, а нужны все данные "вообще"
Если нужны именно картинки, и они грузятся на странице с ващего же сервера, то можно получить доступ к пикселям картинки.
Надо вставить картинку в canvas и взять из canvas ImageData

Что имеется ввиду под моим сервером ? У меня нет сервера.

Rise 26.08.2022 15:46

Цитата:

Сообщение от Andy_kun
С какой целью ?

С той что непонятно зачем (очередной любитель поспорить в том в чем он не разбирается?) вы приплетаете то что всё равно ничего не доказывает в вашу пользу:
Цитата:

Сообщение от Andy_kun
видео с ютуб - ... - вот уж точно - это видео хранится не на жёстком диске.

Видео с ютуб может храниться на жестком диске, просто эта фича, ютуб премиум, доступная по подписке. Это фича многих потоковых сервисов.

Цитата:

Сообщение от Andy_kun
Что имеется ввиду под моим сервером ?

Это значит твой сайт, чел. Сервер это компьютер на котором физически находится сайт.

Andy_kun 29.08.2022 14:15

Цитата:

Сообщение от Rise (Сообщение 547618)
Это значит твой сайт, чел. Сервер это компьютер на котором физически находится сайт.

Как я написал ранее - У меня нет сервера.


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