Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экономная подзагрузка рисунков 
:(
    Опции темы
Diesel Draft
Дата 20.11.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



Короче надо реализовать один алгоритм. Все очень просто. У меня просто руки не доходят.

Есть такой код

Код

 <a OnClick="show_foto('60.gif')">1</a>
 <a OnClick="show_foto('61.gif')">2</a>
 <a OnClick="show_foto('62.gif')">3</a>



При нажатие на на ссылку, должен загружаться рисунок. Но если он раньше не загружался то надо его загрузить в кэш. В свою очередь, если он загружался раньше то забирать надо только из кэша.

Но функция очень проста:

Берем глобальный массив.

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

Функция на 4 строчки.

Помогите пожалуйста. А то у меня как то не получается.



--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Aliance
Дата 20.11.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Зачем такой изврат?
Чем обычная предзагрузка не подходит?
PM MAIL WWW ICQ Skype   Вверх
Diesel Draft
Дата 20.11.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



Нет. Я тоже так думал.
Но если юзер не хочет смотреть эту фотографию. И мне и ему будет идти лишний трафик и час загрузки.



--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Sardar
Дата 21.11.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Diesel Draft нельзя из JS узнать есть ли определённый файл в кеше браузера (а зря...), браузер сам решит есть ли картинка в кеше и сделает всё как нужно без каких либо движений программиста. И это правильно smile

Кешь не пашет как нужно если:
  • картинка на серваке часто меняеться
  • сервак не понимает заголовка If-Modiffed-Since, что редкость
  • сервак по умолчанию отсылает заголовки, отменяющие кеширование
  • прокси юзера отменяет кеширование, бывает редко
  • кривая реализация кеша в браузере
Глянь на заголовки что получаешь от сервера, глянь в настройки кеша браузера, далее по ситуации smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
sergejzr
Дата 21.11.2005, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Diesel Draft, на каком языке пишем? Глянь ко мне в подпись, там проверялка орфографии. Этот я за тебя отредактировал...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Diesel Draft
Дата 22.11.2005, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



Цитата(sergej @ 21.11.2005, 19:31)
Diesel Draft, на каком языке пишем? Глянь ко мне в подпись, там проверялка орфографии. Этот я за тебя отредактировал...


Я плохо по руски пишу


Цитата(Sardar @ 21.11.2005, 19:18)
нельзя из JS узнать есть ли определённый файл в кеше браузера

действительно не надо. Мы загружаем его через обект image . А задача функци провереть загружалась ли даная картинка в даном сеансе (не перегружая страницу).

У меня на www.avtobroker.org.ua когда смотриш рисунки не перегружая страничу. Но он загружает каждий раз когда я звертаюсь до нейц

Код

    <script>
    function show_foto(t){
    document.all.avto_foto.src = 'foto.php?foto=' + t;
    }
</SCRIPT>


Штобы фотка впервый раз загружалась в кеш, а потом только з него брало


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Sardar
Дата 22.11.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Diesel @ 22.11.2005, 01:10)
Штобы фотка впервый раз загружалась в кеш, а потом только з него брало

В скрипте используешь URL с параметром, значит браузер по дефолту отключает кеширование. Из своего скрипта отрылай pragma и прочие заголовки для явного включения кеша браузера, должно помочь.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Дрон
Дата 22.11.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Sardar
Я не силён в js, но мне кажется он говорит не про кэш браузера, а про самодельный кэш. Т.е. имеется ввиду просто массив картинок, в который они помещаются при первом запросе и из которого они берутся при необходимости.


--------------------
Да. Именно так.
PM   Вверх
Гость_12345
Дата 22.11.2005, 19:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Diesel Draft: надо создать хеш и работать с ним.
Код

<script>
avto_foto=new Object;
function show_foto(t){
    if(avto_foto[t]){;}else{(avto_foto[t]=new Image).src = 'foto.php?foto=' + t;}
    вывести рисунок куда надо из avto_foto[t].src;
}
</script>

  Вверх
Diesel Draft
Дата 22.11.2005, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



сенк зара попробую


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Diesel Draft
Дата 23.11.2005, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



НЕработает smile
а придумано правельно


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Sardar
Дата 23.11.2005, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата
Т.е. имеется ввиду просто массив картинок, в который они помещаются при первом запросе и из которого они берутся при необходимости.

Не реально стандартными средствами, можно только массив картинок создать, что будут подгружаться "в фоне". Конечно если придумать чудо функцию, что с высокой точностью может предугадать когда понадобиться картинка, то можно сделать подзагрузку во времени, но ИМXО тут много граблей. Сам сижу на 1Мбс канале с безлимитным трафом (тут все так), как то не очень понимаю зачем экономить пару кб трафа по цене задержек при показе картинок...

Главное помнить, что после перезагрузки страницы все картинки сгенерённые скриптами без установленных HTTP заголовков кеширования, будут загруженны опять.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Diesel Draft
Дата 27.11.2005, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 876
Регистрация: 18.1.2005
Где: Lviv, Ukraine

Репутация: -1
Всего: 5



да, надо загружать в фон. Но только если до него звертаютса он должен переверить есть он в масиве или нет. Если нет то загрузить


--------------------
НЕДОМА в маси 
PM MAIL WWW ICQ GTalk   Вверх
Sardar
Дата 27.11.2005, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Diesel @ 26.11.2005, 23:35)
Но только если до него звертаютса он должен переверить есть он в масиве или нет. Если нет то загрузить

А в чём смысл? Всё равно же будет задержка + не нужные вычисления со списком.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Гость_12345
Дата 27.11.2005, 04:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered












Diesel Draft А почему не работает? Может, после Object и Image скобок ему не хватает? Остальное всё грамотно.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1088 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.