За последние 24 часа нас посетили 17742 программиста и 1722 робота. Сейчас ищут 904 программиста ...

Предварительная загрузка графики для меню

Тема в разделе "JavaScript и AJAX", создана пользователем mr.smart, 27 июн 2010.

  1. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Добрый день.

    Пишу первый мой серьезный сайт - http://persefona67.net76.net/rossinn/index.html

    Меню написано с помощью jquery.tools.min.js. (если честно - скопипастено) Но есть проблема. Для графики выпадающих пунктов используется 5 изображений где-то по 500 байт. И грузятся они исключительно при непосредственном "раскрытии" подменю, что выглядит весьма непрезентабельно.

    Вопрос: как заставить загрузиться эти изображения при первом заходе на сайт вместе со всем остальным содержимым сайта? (возможно вопрос не совсем по теме Аякса с джавой, не знал куда обратиться)
     
  2. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  3. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Премного благодарю.
    Думал над этим способом, но предполагал что он "небрутальный ниразу и вообще им никто не пользуется".



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

    Пока предполагаю сделать это с помощью innerHTML для div'а. Т.е. получается что в одном js-файле будет храниться вся информация о всех товарах и грузится она будет со всей страницей.

    Как попроще можно сделать загрузку содержимого только после нажатия на соответствующий пункт списка? (аякс?)
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    без перезагрузок надо? аякс, фремы
     
  5. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Ладно тогда, с Аяксом времени разбираться нету. Сделаю пока с innerHTML, благо, текста немного.
    Спасибо.
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    было бы с чем разбираться
    HTML:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    2.     <head>
    3.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    4.         <script type="text/javascript" src="js/jquery-1.4.2.js"></script>
    5.         <script type="text/javascript">
    6.         menu = {
    7.                  menu1 : '1.html',
    8.                  menu2 : '2.html',
    9.                  menu3 : '3.html'
    10.                };
    11.                  
    12.         $(document).ready(function(){
    13.  
    14.             for(var i in menu){
    15.  
    16.                 $("#"+i).click(function() {
    17.                    
    18.                     AjaxMenu(this.id);             
    19.  
    20.                 });
    21.  
    22.             }
    23.  
    24.         });
    25.  
    26.         function AjaxMenu(id){
    27.  
    28.             var load = menu[id];
    29.            
    30.             $.ajax({
    31.                 url: load,
    32.                 success: function(data){
    33.  
    34.                     $("#content").html(data);
    35.  
    36.                 }
    37.            });
    38.            
    39.         }
    40.         </script>
    41.     </head>
    42.     <body>
    43.         <center>
    44.           <div style="width:500px;height:20px;border:solid 1px black">
    45.             <a  id="menu1">Меню1</a>
    46.             <a  id="menu2">Меню2</a>
    47.             <a  id="menu3">Меню3</a>
    48.           </div>
    49.           <div id="content" style="width:500px;height:500px;border:solid 1px black;margin-top:10px"></div>
    50.         </center>
    51.     </body>
    52. </html>
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Что-то типа такого:
    new Image('img/img.jpg');
    или так:
    var lol = new Image;
    lol.src = 'img/img.jpg';
     
  8. [js]<script language="JavaScript" type="text/JavaScript">
    <!--
    function Preload() {
    var args = simplePreload.arguments;
    document.imageArray = new Array(args.length);
    for(var i=0; i<args.length; i++) {
    document.imageArray = new Image;
    document.imageArray.src = args;
    }
    }
    -->
    </script>[/js]
    HTML:
    1. <body onLoad="Preload('image1.jpg', 'image2.gif', 'image3.png', ...)"
     
  9. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    флоппик
    о, прикольный способ
     
  10. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    флоппик еее, шикарный способ, так и сделал, спасибо!

    Padaboo не совсем понял строку
    HTML:
    1. $("#content").html(data);
    она что делает если не секрет? И как примерно должны выглядить 1.html, 2.html ... ? Там тоже аяковский скрипт какой-то должен быть что ли?
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    нет, в 1.html просто то что помещается в див при нажатии на меню, все что угодно, текст, картинки, ссылки
    [js]$("#content").html(data);[/js]
    в элемент с id="content" помещается переменная data, data это ответ аякса, как раз таки то что в 1.html и т.п.
     
  12. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Хм... У меня аякс дату пустой возвращает. Хотя переменная load там равной '1.html' получается, проверил даже. Файл 1.html содержит "<p>123456789".
    Вввидимо что-то случилось?
     
  13. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  14. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Да-да, это всё скачал, прописал где надо (всё у меня в одной папке тестовой)
    alert внутри success: function(data){} срабатывает. но data пустой отображает.
     
  15. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
  16. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Опа! Проверил в IE, всё норм! А мой стандартный хром не кажет!
     
  17. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
  18. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Не хочешь размер сравнить?
     
  19. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    да я видел, мне слово min не нравится, там все что надо есть?
    а еше не красиво и без комментариев )
     
  20. mr.smart

    mr.smart Активный пользователь

    С нами с:
    27 июн 2010
    Сообщения:
    8
    Симпатии:
    0
    Запустил на сервере - заработало.
    В ИЕ и локально всё робило почему-то...
    Ух! Пока всё шикарно. Буду работать, спасибо!
     
  21. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Это оптимизированная версия, которая весит аж в два (или уже три) раза меньше.
    Во-вторых, она ВСЕГДА последняя.
    В-третьих, нет смысла в подключении 150-килобайтовой библиотеки просто из-за того, что там есть комментарии.
     
  22. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    а, ясно, я то думал там не все функции
     
  23. И внезапно, в рабочем проекте, у тебя может что-то отвалится, лишь потому что она обновилась.