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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не подгружать рисунок каждый раз, можно ли созранить средствами JS? 
:(
    Опции темы
quiz
Дата 24.6.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 15.8.2005

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



Если на страничке есть фреймы и в одном из них постоянно встречается одна и таже картинка, причем довольно большого размера.
Можно ли средствами JS эту картинку в статичном фрейме как-то сохранить и при появлении ее в нижнем - не загружать заного, а брать уже сохраненную?

Я еще только начинаю изучать JS, поэтому  smile 

Спасибо ;)
PM MAIL   Вверх
vasac
Дата 24.6.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Браузер сам все закеширует.
PM WWW   Вверх
SelenIT
Дата 24.6.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



vasac, нормальный браузер - да, а как быть с IE? Я сам недавно поднимал похожий вопрос на xpoint'е - мне там дали "наводку" насчет таймаута, но решения (по крайней мере, чисто клиентского) я так и не нашел... Буду крайне благодарен за подсказки!


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
quiz
Дата 24.6.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 15.8.2005

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



да, нужно решение для IE. У некоторых кеширование отключено вообще
PM MAIL   Вверх
vasac
Дата 24.6.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



quiz, вы используете на странице асинхронные запросы?
Цитата

У некоторых кеширование отключено вообще

Те немногие, которые отключили кеширование, сделали свой осознанный выбор.

Это сообщение отредактировал(а) vasac - 24.6.2007, 19:49
PM WWW   Вверх
12345c
Дата 25.6.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Для IE практически нет решения, если картинки расположены на странице с некешируемым содержимым (php-файлы конференций). Обойти можно, пропуская траффик через локальный прокси-сервер. Например, я пользовался Naviscope во времена модемной связи, и это помогало как в кешировании, так и в корректном завершении недозагруженной страницы (IE выдавал ошибку, не показывая вообще ничего из загруженного, если страница недогрузилась и связь разорвалась).
PM WWW   Вверх
SelenIT
Дата 26.6.2007, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



12345c, можно чуть поподробнее? Неужели поведение браузера в отношении картинок зависит от заголовков выдачи HTMLя? Или я неправильно понял?

У меня была проблема со страницей, где DOM строилась динамически (XSLT-преобразованием подгружаемого XML) после загрузки страницы - но сами файлы (как HTML, так и XML) были статическими и вполне "кешибельными". Пожалуй, продублирую здесь два минимальных примера, иллюстрирующих разницу в загрузке картинок во время загрузки body и после ее завершения (оригинал темы на xpoint-е):
Код

<div id="zzz">
   <img tmpurl="logo.gif">
   <img tmpurl="logo.gif">
   <img tmpurl="logo.gif">
</div>
<script>

// Так грузит один раз

var im=new Image();
im.src = "logo.gif";

var sps = document.getElementById('zzz').getElementsByTagName('img');
for (var i=0, s; s=sps[i]; i++) {
   var u = s.getAttribute('tmpurl');
   if (u && u == im.src.replace(/^.*\//,'')) {
      s.src = im.src; 
   }
}

</script>


Код

<script>

// а так - столько, сколько раз повторяется src...

onload = function() {
   var im=new Image();
   im.src = "logo.gif";

   var sps = document.getElementById('zzz').getElementsByTagName('img');
   for (var i=0, s; s=sps[i]; i++) {
      var u = s.getAttribute('tmpurl');
      if (u && u == im.src.replace(/^.*\//,'')) {
         s.src = im.src;
      }
   }
}

</script>
<div id="zzz">
   <img tmpurl="logo.gif">
   <img tmpurl="logo.gif">
   <img tmpurl="logo.gif">
</div>

В настройках кеширования в обоих случаях стоит "...при каждом посещении страницы". Тестировалось в IE6 SP2 (WinXP).

На Xpoint-е мне подсказали ссылку на MS Support (правда, там рассматривается вставка картинок через innerHTML), в которой есть совет
Цитата(http://support.microsoft.com/default.aspx?scid=kb;en-us;319546)

Create a brief time-delay so that Internet Explorer has enough time to verify whether the image is in the cache, and then call the innerHTML property.

Но сколько я не пытался вставлять таймауты перед присвоением src (а также cloneNode+appendChild картинки) - ничего не помогло... видимо, я не умею их готовить. Но кому-то же ведь удавалось укротить "ослиный" кеш с помощью волшебного таймаута!..


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


 




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


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

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