Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: принудительное кеширование определенных файлов(картинок)
 
 автор: bab-nike   (22.07.2010 в 02:54)   письмо автору
 
 

Задался я одним делом, нынче в моду пошли всякие онлайн игры, хочу организовать покер, но для wap, то есть без флеш анимации и чтоб трафика жрал как можно меньше.
Есть калода карт, я их обозначил k_n.png, где k-масть(бубны, черви, трефы, пики соответственно 1,2,3,4) а n- сама карта(2,3.... К, Т), принимают значение от 2 до 14. То есть картинка 4_8.png это 8-ка пик.
Теперь сам вопрос, как предварительно кешировать эти картинки, чтоб разные броузеры работали правильно? я вытащил с одного из шаблонов Dreamweaver такой код на ява скрипте, типа предварительно кеширует картинки
function MM_preloadImages() { 
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
......
<body onload="MM_preloadImages('_pics/1_2.png','_pics/1_3.png',....'_pics/4_14.png')">

и вписал вот такое
<body onload="MM_preloadImages(
<?php
$aaa
=array('1','2','3','4');
for(
$key=0$key<=3$key++)
    { 
         for(
$q=2$q<=14$q++)
             {
            echo 
"'_pics/".$aaa[$key]."_".$q.".png',";
            }
    }
?>
)">

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

  Ответить  
 
 автор: sim5   (22.07.2010 в 10:36)   письмо автору
 
   для: bab-nike   (22.07.2010 в 02:54)
 

Это предварительная загрузка объектов, а не кеш на диске, и при обновлении будет выполняться вновь.

  Ответить  
 
 автор: bab-nike   (22.07.2010 в 15:24)   письмо автору
 
   для: sim5   (22.07.2010 в 10:36)
 

а что посоветуйте, на чем опираться чтоб заставить броузеру кешировать картинки?

  Ответить  
 
 автор: Саня   (22.07.2010 в 15:32)   письмо автору
 
   для: bab-nike   (22.07.2010 в 02:54)
 

Кешированием на стороне клиента невозможно управлять. Можно только рекомендовать кеширование посредством http-заголовков.
Как реагировать на заголовки Cache-Control, Pragma, Expires и прочие, решает только клиент. Средствами HTTP нельзя заставить клиента закешировать тот или иной объект. Можно только предложить клиенту закешировать тот или иной объект. Причины, почему клиент не кеширует данные, банальны: квоты хватает только для хранения пользовательских данных или механизм кеширования тупо не реализован. Если для настольных браузеров кеширование — вполне обыденное явление, то для мобильных агентов нет.

  Ответить  
 
 автор: bab-nike   (23.07.2010 в 17:19)   письмо автору
 
   для: bab-nike   (22.07.2010 в 02:54)
 

нашел более или мене подходящий вариант решения, вот ссылка если кому интересно.
вот только как мобильные броузеры будут реагировать -пока не ясно, пойду ка поэкспериментирую :)
http://htaccess.net.ru/doc/Pass_Set_Env/cache4.php

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования