За последние 24 часа нас посетили 17662 программиста и 1721 робот. Сейчас ищут 955 программистов ...

Ajax <Прогресс бар загрузки сайта....>

Тема в разделе "JavaScript и AJAX", создана пользователем hilton_413, 17 ноя 2010.

  1. hilton_413

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

    С нами с:
    31 янв 2010
    Сообщения:
    6
    Симпатии:
    0
    Всем привет...

    Есть очень много Flash прелодеров на ActonScript 3..., которые не покажут сайт пока не загужены бсе файлы с уведомлением пользователя сколько загружено/осталось в %.

    А возможно ли создать что похоже на Ajax+jquery.
    можно конечно закинуть gif анимация, но это не та задача... :)

    На подобии вот ЭТОГО http://www.bram.us/demo/projects/jsprogressbarhandler/ajaxprogressbar.html
    или когда заходиш на gmail.com/accaunt
     
  2. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    hilton_413
    в чем смысл такой штуки?если сайты грузятся за сотые доли секунды?
     
  3. hilton_413

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

    С нами с:
    31 янв 2010
    Сообщения:
    6
    Симпатии:
    0
    ок....
    Сталкивался наверно что картинки большого размера так сказать рисуются....

    Есть сайты где можно наблюдать как выстраеваются блоки сайта по мери загружанности css js...
    хотя скорость вроде не маленикая.... не 54кб
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    hilton_413
    Да, это можно сделать, но без костылей не обойтись по большей части.
    Если рассмотреть стандартную onload, то это просто событие, до него (после подгрузки исполняемого кода) можно попробовать корячить саму модель документа, при этом картинки останутся без информации.
    Можно со стороны сервера отдавать размер.
    Там что изображения можно по-очереди просматривать, но загружаются они, опять-таки, нелинейно.

    Говорю ж, костыли.
    Сделать можно, да, но стоит ли оно того?

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

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    раскопал

    в общем считаешь количество аргументов, переводишь в проценты ну и по мере загрузки добавляешь их на сам бар
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Padaboo
    Не получится так.
    Для того, чтобы считать процесс загрузки, нужно как минимум знать размер целого изображения, размер загруженного, общее количество изображений. В примере мы знаем только первое, как результат:

    1. Идет загрузка (0%)
    2. Загружено (100%)

    И всё.
     
  7. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Apple
    понятно
    можно это сделать если захотеть, только по моему тоже ни к чему
     
  8. hilton_413

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

    С нами с:
    31 янв 2010
    Сообщения:
    6
    Симпатии:
    0
  9. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20


    Это реализцаия css кеша.

    Знаю что у jQuery есть магический метод .load() :)

    я бы сделал так:
    Код (Text):
    1. <div id="overlay"></div> - это наш pre-load screen.
    Рисуем оверлей JS'om, чтоб не появлялся в случае, если у браузера не подключен JS.
    HTML:
    1. <script type="text/javascript">
    2. document.write('<div id="overlay"></div>');
    3. ...
    в <head> подключаем jQuery и скрипт, с содержанием:

    [js]$(document).ready( function() {
    total_images = document.getElementByTagName('img').length;
    if( total_images == 0)
    $('overlay').hide();
    else
    {
    loaded_count = 0;
    $('img').load( function() {
    if( ++loaded_count == total_images)
    $('#overlay').hide();
    });
    }
    });[/js]

    Код не проверял, идея думаю ясна.
     
  10. Mat

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

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    Для подсчёта в % вполне достаточно знать сколько загрузилось и сколько всего, сколько загрузилось отслеживать по image.onload()

    короче: image_loaded*100/max
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    считайте не в кило, а в штуках