Javascript.RU

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

динамическое обновление картинки (рисуемой)
У меня есть картинка, которую я рисую с помощью asp.net. Это фон дива, который я обновляю по движению мыши... что-то вроде карты, в общем.
function mouseup(e) {
            var scroll = getScrollXY();
            c = e.clientX+scroll[0];
            d = e.clientY+scroll[1];
            document.getElementById("dda").style.backgroundImage = "url(WebForm2.aspx?Координаты=" + a + "_" + b + "/" + c + "_" + d + "&Параметры=/Координаты" + ")";            
        }

Так вот. Картинка эта рисуется секунду с чем-то, и безбожно мигает во время загрузки, что очень не приятно. Можно как-то сделать, чтобы предыдущая картинка сохранялась, пока изображение полностью не прорисуется?
Ответить с цитированием
  #2 (permalink)  
Старый 13.09.2011, 09:27
Интересующийся
Отправить личное сообщение для Lottarend Посмотреть профиль Найти все сообщения от Lottarend
 
Регистрация: 13.09.2011
Сообщений: 13

Прочитал про кэширование изображения. Попытался сделать так.
var im = new Image();
im.src="WebForm2.aspx?Координаты=" + a + "_" + b + "/" + c + "_" + d + "&Параметры=/Координаты" + "";   
document.getElementById("dda").style.backgroundImage = im.src;

До этого поэкспериментировал с картинкой, смена изображения работает корректно. Что не так? Почему у div'а не меняется фон?
...

Гм, попытка 3.
var im = new Image();
im.src="WebForm2.aspx?Координаты=" + a + "_" + b + "/" + c + "_" + d + "&Параметры=/Координаты" + "";            
document.getElementById("dda").style.backgroundImage = "url("+im.src+")";

Заработало, но почему-то, в отличие от аналогичных действий с img, мигание никуда не делось.

Последний раз редактировалось Lottarend, 13.09.2011 в 09:51.
Ответить с цитированием
  #3 (permalink)  
Старый 13.09.2011, 11:05
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Если честно, то не совсем ясно что вы делаете. Если я правильно понял, то вы не загрузили изображение, т.е. не закэшировали его до начала смены картинки.

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

Сначала грузим, потом вызываем, а не вместе.

Ps:
var im = new Image();
im.onload = function () {
document.getElementById("dda").style.backgroundImage = "url("+im.src+")";
}
im.src="WebForm2.aspx?Координаты=" + a + "_" + b + "/" + c + "_" + d + "&Параметры=/Координаты" + "";
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 13.09.2011 в 11:11.
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2011, 11:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Lottarend
У меня есть картинка, которую я рисую с помощью asp.net. Это фон дива, который я обновляю по движению мыши...
Интересно, на каком количестве посетителей сервер загнётся?
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2011, 12:49
Интересующийся
Отправить личное сообщение для Lottarend Посмотреть профиль Найти все сообщения от Lottarend
 
Регистрация: 13.09.2011
Сообщений: 13

Gozar, о, точно, спасибо, заработало. Это мигание изрядно раздражало -_-
Kolyaj, а это так ресурсозатратно? Гм... ну, вы бы что предложили?
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2011, 13:21
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Если картинка генерируется секунду с чем-то, как думаете, это затратно или нет?
Да и вы, наверное, сейчас на локалхосте тестируете и не учитываете сетевые задержки.
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2011, 13:28
Интересующийся
Отправить личное сообщение для Lottarend Посмотреть профиль Найти все сообщения от Lottarend
 
Регистрация: 13.09.2011
Сообщений: 13

Угу. Не учитываю, да. Секунда - это максимум, что получилось выжать с GDI++. Мне просто не понятно, какой здесь еще подход можно применить. Карта так и так динамическая, а при масштабировании еще и полный перерасчет делается.
Ответить с цитированием
  #8 (permalink)  
Старый 13.09.2011, 13:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Lottarend
Мне просто не понятно, какой здесь еще подход можно применить.
Мы же не знаем, что вы делаете. Но если вы будете на mousemove каждого юзера генерировать новую картинку, то, во-первых, у каждого юзера будут жуткие тормоза, во-вторых, при некотором маленьком количестве юзеров ваш сервер просто умрёт.
Ответить с цитированием
  #9 (permalink)  
Старый 13.09.2011, 13:50
Интересующийся
Отправить личное сообщение для Lottarend Посмотреть профиль Найти все сообщения от Lottarend
 
Регистрация: 13.09.2011
Сообщений: 13

Ясно. Спасибо за инфу.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обновление картинки при клике Обновить Cerver Общие вопросы Javascript 15 17.02.2012 15:57
Динамическое изменение размеров фоновой картинки ячейки shaitan Элементы интерфейса 4 15.04.2010 13:30
Обновление картинки при нажатии sdff Общие вопросы Javascript 2 07.10.2008 09:05
Динамическое обновление списка select (продолжение мытарств) macam Элементы интерфейса 2 25.06.2008 16:04
Динамическое обновление списка Select Fender Events/DOM/Window 3 12.06.2008 21:30