Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы? / 14 сообщений из 14, страница 1 из 1
26.05.2020, 14:51
    #39962260
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
На сайте используется IHttpHandler отдающий клиенту картинки из БД. Что нужно сделать с хедерами чтобы броузер проверял запрашивал только хедера для таких картинок и если дата не изменилась, чтобы саму картинку не запрашивал у сервера, а брал ее со своего кеша?
...
Рейтинг: 0 / 0
26.05.2020, 17:28
    #39962363
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
...
Рейтинг: 0 / 0
26.05.2020, 19:18
    #39962445
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
...
Рейтинг: 0 / 0
27.05.2020, 13:46
    #39962800
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
voodoos
На сайте используется IHttpHandler отдающий клиенту картинки из БД. Что нужно сделать с хедерами чтобы броузер проверял запрашивал только хедера для таких картинок и если дата не изменилась, чтобы саму картинку не запрашивал у сервера, а брал ее со своего кеша?

Если у вас есть дата изменения картинки, то Cache-Control: private и в нужном формате Last-Modified .
Клиент начнёт передавать вам заголовок If-Modified-Since и вам надо будет сравнить его значение с датой последних изменений файла,
и если их не было, то вернуть ответ 304 Not Modified (с пустым телом), указывая, таким образом, чтобы браузер взял копию из кеша.
...
Рейтинг: 0 / 0
28.05.2020, 04:09
    #39963142
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
[quot Дмитрий Мух#22140472]
voodoos
Если у вас есть дата изменения картинки


Да, есть, спасибо!

Спасибо всем, завтра буду разбираться…
...
Рейтинг: 0 / 0
29.05.2020, 23:51
    #39964266
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
Добавил в хандлере вот такую хрень:

Код: c#
1.
2.
context.Response.AppendHeader("Cache-Control", "public");
context.Response.AppendHeader("Last-Modified", file.Updated.ToUniversalTime().ToString("r"));



Стал кешировать. Но при изменении даты обновления картинки берутся все равно из кеша… :(
...
Рейтинг: 0 / 0
30.05.2020, 01:44
    #39964290
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
voodoos,

как сделали, так и работает...
...
Рейтинг: 0 / 0
03.06.2020, 01:10
    #39965484
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
Дмитрий Мух,

Я вообще так понял, что если уж клиенту отправляется Last-Modified, то при первой загрузке картинки это значение должно запоминаться, если оно при последующих запросах не меняется, то броузер должен брать картинку из кеша, но если оно в последующем меняется на большую дату, то в этом случае картинка должна браться не из кеша, а с сервера. Не так?
...
Рейтинг: 0 / 0
03.06.2020, 03:55
    #39965511
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
voodoos,

Last-Modified на принятие решения браузером, откуда брать картинку не влияет.
В общем, вы так и не почитали ссылки, которые вам кинули, а Дмитрий оказал вам по большему счёту медвежью услугу ))
...
Рейтинг: 0 / 0
03.06.2020, 12:35
    #39965611
voodoos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
hVostt
voodoos,

Last-Modified на принятие решения браузером, откуда брать картинку не влияет.
В общем, вы так и не почитали ссылки, которые вам кинули, а Дмитрий оказал вам по большему счёту медвежью услугу ))


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

UPD: А как выясняется, я еще и пост Дмитрия невнимательно прочитал… )))))
...
Рейтинг: 0 / 0
03.06.2020, 14:02
    #39965659
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
voodoos
UPD: А как выясняется, я еще и пост Дмитрия невнимательно прочитал… )))))


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

Да, вы забыли про private, но всё же лучше почитать, это же как минимум интересно и полезно )
...
Рейтинг: 0 / 0
03.06.2020, 15:19
    #39965730
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
voodoos
Дмитрий Мух,

Я вообще так понял, что если уж клиенту отправляется Last-Modified, то при первой загрузке картинки это значение должно запоминаться, если оно при последующих запросах не меняется, то броузер должен брать картинку из кеша, но если оно в последующем меняется на большую дату, то в этом случае картинка должна браться не из кеша, а с сервера. Не так?

Очень странно вы поняли то, что я написал.

Повторю:
Клиент начнёт передавать вам заголовок If-Modified-Since и вам надо будет сравнить его значение с датой последних изменений файла,
и если их не было, то вернуть ответ 304 Not Modified (с пустым телом), указывая, таким образом, чтобы браузер взял копию из кеша.

По сути при последующем запросе за картинкой вас спросят: А менялся-ли файл после такой-то даты ( If-Modified-Since )?
Вы должны сравнить эту дату с датой последнего изменения файла.
И если он не менялся, то ответить: Нет, не менялся ( 304 Not Modified ).

Тогда браузер возьмёт его из кэша.

Иначе вы просто должны отдать файл и новую дату Last-Modified .
...
Рейтинг: 0 / 0
03.06.2020, 15:21
    #39965733
Дмитрий Мух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
hVostt
voodoos,

Last-Modified на принятие решения браузером, откуда брать картинку не влияет.
В общем, вы так и не почитали ссылки, которые вам кинули, а Дмитрий оказал вам по большему счёту медвежью услугу ))



Надеялся, что человек за ответами на вопросы сходит в документацию.
И в очередной раз убедился, что так мало кто делает из молодых разработчиков.
Им подавай развёрнутое объяснение сразу и на первой странице.
...
Рейтинг: 0 / 0
04.07.2020, 06:36
    #39976120
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы?
Я делаю так:
<img src="image?"+дата />
Это всё кешируется, если такой даты нету - загружается.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как заставить броузер кешировать картинки выдаваемые клиенту хандлером из базы? / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]