Как лучше сделать Хинты с картинками
Здравствуйте.
Есть список товаров, с картинками. В списке есть иконка, при наведении на которую клиент хочеть видеть всплывающую подсказку с картинкой товара. Я делаю следующим образом: Код AS3:
посоветуйте как это в порядок привести? В идеале надо чтоб отображались адекватно, там где надо, и удалялись вовремя. есть вариант грузить сразу все картинки, а потом просто из памяти брать. Но тогда загрузка самого экрана будет долгой как мне кажется. Но в риалтайме адекватных решений не вижу. |
Я бы сделал так:
1. Хинт показывать сразу (не дожидаясь окончания загрузки), вместо картинки - квадратик с крутящимся прогресс-баром 2. Картинки перевести в низкое качество и довести до 3-5кб. 3. Хинтер переработать так, чтобы он всегда показывал ту картинку, которая сейчас нужна (те, которые начали загружаться, но теперь не нужны - останутся в кеше) А вообще-то, если товар показывается партиями, то превьюшки для хинтера грузить при открытии партии товара. Например, 10х5кб - это совершенно несерьезный размер. |
Была идея грузить картинки сразу, но иконки фотоаппарата показывать только когда они загрузились.
Так окно откроется сразу без задержек, а картинки сможем смотреть только тогда когда они будут. А хинт с картинкой из кеша без задержек выскакивает... Насчет варианта: 3. Хинтер переработать так, чтобы он всегда показывал ту картинку, которая сейчас нужна (те, которые начали загружаться, но теперь не нужны - останутся в кеше) //**************** а каким макаром проследить нужна она или уже нет? Типа убрался курсор с иконки - значит отставить показывать? Там где у меня стоит удаление, там надо походу докрутить еще и проверку на отбой показывания. Или лучше на прогрессИвент что-то вешать? |
У Вас хинт всегда в единственном экземпляре существует. Заведите в классе статическую переменную (как вариант), в которую пишите текущий активный лоадер. При снятии мыша с позиции товара, обнуляйте его. Потом, когда картинка догрузилась, проверяйте, активный ли это лоадер. Если активный - показывайте, если нет - прибивайте. В кеше браузера картинка все равно останется.
|
не нужна тут статическая.
делаете лоадер свойством класса. при скрытии хинта убивайте насмерть лоадер, прекращайте загрузки. |
Проблема решена:)
Просто я хинт добавлял только после того как загрузилась картинка, а надо было добавлять его сразу (как ваше предложение с прелоадером). Пустой хинт отображается сразу же, а следовательно в дальнейших проверках он уже не null, а следовательно я могу его удалить если убрал мышу с картинки. Потом при получении картинки смотрю есть хинт или нет, если есть, то показываю картинку, если нет, то забиваю на картинку. Код AS3:
Добавлено через 2 минуты Цитата:
Подложка в свойства вынесена, а лоадер создается как временный, хотя надо бы наоборот..... Спасибо:) |
вы можете сделать Dictionary , где ключ будет ваша картинка, а значение - загруженый для него хинт (если он был загружен).
таким образом делаем проверку - если есть уже хинт, то лоадер не дергаем, а берем хинт из хэша |
Цитата:
То дальше уже буду крутить сравнения с наличием в моей таблице и если что - не делать лоадер. Меня пока интересовал сам механизм отображения картинки. (картинки в хинте не единственное место в базе с картинками, а вот так вот в режиме риалтайм отображается только тут... Во всех остальных случаях как раз так и есть как вы говорите, пытаемся отобразить из архива, если нету то качаем, засовываем в архив, отображаем) |
Часовой пояс GMT +4, время: 09:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.