Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2013, 16:56   #1
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию Не меняется картинка после ajax загрузки.

Всем привет! Написал скрипт для смены аватара пользователя через ajax - то есть сразу после ее выбора в диалоговом окне input'а с типом file.
На сервере все картинки имеют имена user152.*, user176.*,user2.* и т. п. То есть имена связаны с определенным идентификатором каждого пользователя, поэтому имя картинки при загрузке новой остается таким же. А в кэше браузера у нас другая картинка, старая.

Так вот хотелось бы узнать, как сбросить кэш без перезагрузки страницы, или тут не в кэше дело?
Mr_freeman вне форума Ответить с цитированием
Старый 25.01.2013, 08:27   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
function refresh_image() {
  // updating image
};
var img = new Image();
img.onload = refresh_image;
img.src = ['image_name.jpg', new Date().getTime()].join('?');
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 28.01.2013, 10:04   #3
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Код:
function refresh_image() {
  // updating image
};
var img = new Image();
img.onload = refresh_image;
img.src = ['image_name.jpg', new Date().getTime()].join('?');
Не понял что тут происходит с объектом img. И как он влияет на сам элемент <img ... />
Поясните пожалуйста.
Mr_freeman вне форума Ответить с цитированием
Старый 28.01.2013, 11:06   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
img.onload = refresh_image;
Привязываем событие загрузки, когда картинка будет готова, выполнится функция refresh_image, в которой уже можно безболезненно менять src у нужного элемента или бэкграунд...
Код:
img.src = ['image_name.jpg', new Date().getTime()].join('?');
грузим нужную картинку...
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 28.01.2013, 12:46   #5
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Я что то туплю с утра, не понял опять, вот смотрите:
  • Выбирается картинка в форме - срабатывает onchange на input'е с типом file:
    Код:
    $('#pers_info #cont #load_photo').change(function(){
    		$('#pers_info #cont #go_load_photo').click();//Отправляем форму
    		$('#pers_info #cont #preloader').show();//Показываем прелоадер
    		$('#pers_info #cont #ava').removeAttr('src').load(function(){
    			$('#pers_info #cont #preloader').hide();//Убираем прелоадер после загрузки новой картинки
    		});
    	});
  • Форма тут же отправляется в iframe и вызывает обработчик на PHP.
  • В обработчике после всех действий у картинки просто меняется src:
    Код:
    window.top.document.getElementById("ava").src=\''.$dir.'\'; //Выводится в айфрейме
Mr_freeman вне форума Ответить с цитированием
Старый 28.01.2013, 13:01   #6
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Все, разобрался. Просто сделал так:
Код:
var timestamp = new Date().getTime();
window.top.document.getElementById("ava").src=\''.$dir.'?update=\'+timestamp;
Mr_freeman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При наведении курсора на кнопку меняется картинка Kurd57 Мультимедиа в Delphi 4 14.02.2012 19:14
после ajax загрузки текста - в нем JQuery плагины перестают работать ADSoft JavaScript, Ajax 4 11.05.2011 14:12
jQuery отмена AJAX загрузки страницы Carbon JavaScript, Ajax 1 28.09.2010 15:30
Java скрипт, при наведении на карту она остается картой но картинка меняется Dimazess Помощь студентам 6 14.03.2010 16:46
ajax скрипт. Строка загрузки не верно работает alldmc PHP 3 21.01.2009 15:38