13.09.2011, 08:13
|
Интересующийся
|
|
Регистрация: 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 + "&Параметры=/Координаты" + ")";
}
Так вот. Картинка эта рисуется секунду с чем-то, и безбожно мигает во время загрузки, что очень не приятно. Можно как-то сделать, чтобы предыдущая картинка сохранялась, пока изображение полностью не прорисуется?
|
|
13.09.2011, 09:27
|
Интересующийся
|
|
Регистрация: 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.
|
|
13.09.2011, 11:05
|
|
猫
|
|
Регистрация: 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.
|
|
13.09.2011, 11:48
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Lottarend
|
У меня есть картинка, которую я рисую с помощью asp.net. Это фон дива, который я обновляю по движению мыши...
|
Интересно, на каком количестве посетителей сервер загнётся?
|
|
13.09.2011, 12:49
|
Интересующийся
|
|
Регистрация: 13.09.2011
Сообщений: 13
|
|
Gozar, о, точно, спасибо, заработало. Это мигание изрядно раздражало -_-
Kolyaj, а это так ресурсозатратно? Гм... ну, вы бы что предложили?
|
|
13.09.2011, 13:21
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Если картинка генерируется секунду с чем-то, как думаете, это затратно или нет?
Да и вы, наверное, сейчас на локалхосте тестируете и не учитываете сетевые задержки.
|
|
13.09.2011, 13:28
|
Интересующийся
|
|
Регистрация: 13.09.2011
Сообщений: 13
|
|
Угу. Не учитываю, да. Секунда - это максимум, что получилось выжать с GDI++. Мне просто не понятно, какой здесь еще подход можно применить. Карта так и так динамическая, а при масштабировании еще и полный перерасчет делается.
|
|
13.09.2011, 13:36
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Lottarend
|
Мне просто не понятно, какой здесь еще подход можно применить.
|
Мы же не знаем, что вы делаете. Но если вы будете на mousemove каждого юзера генерировать новую картинку, то, во-первых, у каждого юзера будут жуткие тормоза, во-вторых, при некотором маленьком количестве юзеров ваш сервер просто умрёт.
|
|
13.09.2011, 13:50
|
Интересующийся
|
|
Регистрация: 13.09.2011
Сообщений: 13
|
|
Ясно. Спасибо за инфу.
|
|
|
|