LINUX.ORG.RU

От полностью отключить кеширование картинок?

 , ,


0

1

Всем привет!

html,js,php,apache,ajax. Делаю не-WYSIWYG интерактивный редактор статей. Все просто: человек пишет текст, пишет имя картинки в фигурных скобках (такой себе тег), когда нажимает «preview», видит что получилось. Слева - область для загрузки картинок. Все работает кроме одной мелочи.

Допустим, изначально картинка на сервере есть. Человек нажимает preview - его исходный текст парсится в HTML, показывается, картинка видна - все хорошо. Нажимаем слева кнопку «Удалить картинку». Картинка удаляется с сервера (AJAX, в файловом менеджере можно видеть, что картинка удалилась). Нажимает preview - а картинка все равно показывается - браузер тянет ее из кеша. Сразу скажу, что по нажатию preview HTML полностью переформировывается. Картика обычная: <img src="...«/>. Если сделать reload странице, то все работает как надо - картинка исчезает.

Обратная ситуация: изначально картинки на сервере нет. Человек вставляет тег, делает preview - на месте картинки - пустое место. Загружаем картинку на сервер (видим в файловом менеджере, что появилась). Опять preview - опять пустое место. Нажимаем в браузере F5 - о, появилась.

Как заставить браузер не искать картинки в кеше?

P. S. Тестирую в Опере, но нужно кросс-браузерное решение.

★★★★★

Последнее исправление: Kroz (всего исправлений: 2)

А нафига вообще они загружаются на сервер в процессе редактировния? Не проще ли отправлять только при сохранении?

Ну и самый верный (привет файрфоксу), простой и кросс-браузерный - это добавлять рандомный параметр в запрос.

Kalashnikov ★★★
()

По идее можно добавлять, к адресу картинки через вопрос random-строку или что-нибудь более осмысленное, те. src=«hads.png?up123»

anonymous
()
Ответ на: комментарий от anonymous

Да, так работает.

Спасибо!

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kalashnikov

А нафига вообще они загружаются на сервер в процессе редактировния? Не проще ли отправлять только при сохранении?

Нет. Пока пользователь пишет мемуары, картинки на фоне грузятся на сервер. Или ты хочешь чтобы, написав все, пользователь еще ждал N минут пока его магабайты будут передаваться?
GMail так же работает.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от ilyaluzyanin

Ну, собственно, по таком принципу: От полностью отключить кеширование картинок? (комментарий)

У меня реализовалось вот так:

var seed=(new Date()).getTime();
...
image=«<img class='img_size_»+text+«' src='»+((text==«thumb»)?config.img_thumb_prefix:config.img_orig_prefix)+image+"?s"+seed+«' alt='»+image+«'>»;

Kroz ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.