Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2011, 21:08
Интересующийся
Отправить личное сообщение для Nikoole Посмотреть профиль Найти все сообщения от Nikoole
 
Регистрация: 04.07.2011
Сообщений: 20

Асинхронная загрузка картинок
Ребят, подскажите пожалуйста. У меня вот такой код:
function loadGif(id_gif)
{
	var loader = document.getElementById("load_"+id_gif);
	loader.src = "./css/img/loader.gif";
	$.ajax
	({
		type: "POST",
		data: "id_gif=" + id_gif,
		url: "./ajax/getGif.php",
		success: function(msg)
			{
				var preloadedImg = new Image(); 
				(!!!)preloadedImg.src = "/uploads/"+msg;
				var gifka = "gif_"+id_gif;
				var gif = document.getElementById(gifka);
				gif.src = preloadedImg.src;
				loader.style.visibility = "hidden";
			document.getElementById("viewed_"+id_gif).innerHTML = parseInt(document.getElementById("viewed_"+id_gif).innerHTML) + 1;
			}
	});
}


cтрока с пометкой (!!!) требует на выполнение какое-то количество времени... Пока грузится файл(preloadedImg.src = "/uploads/"+msg, хочу чтобы на странице крутился лоадер. Как сделать? Как позволить выполнение других команд только после полной загрузки картинки?
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2011, 00:11
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

var img = new Image();
img.onload = function() {
// ...
};
img.src = 'test.jpg';
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2011, 16:41
Интересующийся
Отправить личное сообщение для Nikoole Посмотреть профиль Найти все сообщения от Nikoole
 
Регистрация: 04.07.2011
Сообщений: 20

Сообщение от ваый Посмотреть сообщение
var img = new Image();
img.onload = function() {
// ...
};
img.src = 'test.jpg';
Спасибо. На сколько я понял. чуть чуть подправить надо. Сделал вот так:

var img = new Image();
img.src = 'test.jpg'
img.onload = function() {
   // ...
};
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2011, 17:20
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Точно не уверен, но кажется в опере картинка не начнет грузиться пока ее не показать пользователю. Как вариант могу предложить грузить картинку в абсолютноспозиционированн ом img за границей экрана, а уже после полной закгрузки показать ее пользователю.
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2011, 22:35
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

да нет

смотри в девелопере, картинки спрашивается

(new Image).src  = "https://developer.mozilla.org/skins/mdn/Transitional/img/mdn-logo-compact.png"
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2011, 10:44
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

melky,
Так точно было в девятой ветке. new Image она точно не скачивала, пока ее не показать пользователю.

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

Последний раз редактировалось da_ff, 07.07.2011 в 10:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка валидных форматов картинок alex_89 Общие вопросы Javascript 7 19.06.2011 23:04
Асинхронная загрузка изображения dummer jQuery 13 21.05.2010 05:18
Загрузка картинок из кукисов KraT Ваши сайты и скрипты 2 25.02.2010 17:42
Загрузка картинок до их отображения HoUsE Элементы интерфейса 6 26.12.2008 12:22
Асинхронная загрузка картинок. Leonid AJAX и COMET 9 13.05.2008 09:33