1. JavaScript / Говнокод #16082

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var percent = 0;
    setInterval(function() {
        if(percent < 100) {
            percent += 10;
            showprogress(percent);
        }
    }, 50);

    Прогресс-бар асинхронной загрузки картинки

    Запостил: kissarat, 30 Мая 2014

    Комментарии (22) RSS

    • Картинки грузятся 500мс независимо от инета?
      Ответить
    • Кстати, есть ли какое-нибудь API для наблюдения за ходом загрузки элемента? (хотя бы той же картинки)
      Ответить
      • вроде нет. да и как то смысла не вижу. Загрузилась страница работай. Большая страница долго грузится, разбей страницу на части грузи по частям.
        Ответить
        • Да неужели ти не видел прогрес-бари? Музику/Видео вконтакте не загружал? Гугл драйв не юзал?
          Причем здесь загрузка странци? Если файл большой, типа видео, то без прогрес-бара не обойтись. А делить большую страницу на части - єто из области извращений
          Ответить
          • Я не правильно понял для загрузки файла есть способы узнать состояние загрузки.
            uploadify к примеру умеет
            http://www.uploadify.com/demos/
            Ответить
          • Не, у ж.скрипта такого способа нет. Есть решения с помощью плагинов, типа Флеша, или вовлекать серверную часть, типа слать события по параллелному каналу. Ну или опрашивать по таймеру и смотреть загрузилось ли, или нет, но прогрессбар из этого не построишь. Или, можно строить прогрессбар по принципу: за первый тик - проходим половину, за второй - четверть, за третий - одну восьмую и т.д. Так визуально будет казаться, что мы все время двигаемся вперед, и тем не менее прогрессбар можно показывать бесконечно долго.
            Ответить
            • Да неужели... http://learn.javascript.ru/xhr-onprogress
              Ответить
              • Мы, для примера, рассмотрим загрузку файла с индикацией прогресса. Это требует от браузера поддержки File API, то есть исключает IE<10.
                Ответить
              • А, ну про файл уже сказали. А картинки тоже загружать хтмлхттпреквестом? Тогда уже лучше просто не использовать хтмл вообще.
                Ответить
              • Ну если сильно хотеть докопаться, то формально, даже при том, что есть такое событие у хттп...реквеста, он все равно не часть ж.скрипта, а часть браузера (в ноде, например, его нет). В ж.скрипте как бы вообще нет штатных способов что-то откуда-то загрузить. Судя по стандартной библиотеке, язык задумывался для перевода дат в строки и обратно, но ПХПисты не просекли фишку.
                Ответить
                • А причем здесь Node.js? В ноде собития даже по-другому регистрируються, да и http-клиент более низкоуровневий.
                  Ответить
                  • Есть стандарт, который регламентирует, что есть в языке. И в этом стандарте нету ничего про какие-либо сетевые протоколы. Нода при том, что это такая же реализация ж.скрипта как и та, что есть в браузере, кроме нее еще есть ж.скрипт в стандартном JRE, есть в ASP и еще в менее известных местах.
                    Ответить
                    • Вы сравниваете стихийно, непрерывно-разрозненно составляющуюся платформу и целенаправленно созданные корпоративние фреймворки
                      Ответить
                      • Ничего такое я не сравнивал. Я вообще ничего не сравнивал. Есть язык ж.скрипт. Есть его стандарт. Какие платформы, какие корпорации?
                        Ответить
                        • C# разрабатывался от начала и до конца одними архитекторами. ECMAScript развивается стихийно и его фичи придумывают много людей
                          Ответить

    Добавить комментарий