5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Лабораторная работа 1

Что необходимо сделать, чтобы запускать скрипты, написанные на языке JavaScript? Вам понадобится броузер, способный работать с JavaScript — например Netscape Navigator (начиная с версии 2.0) или Microsoft Internet Explorer (MSIE — начиная с версии 3.0). С тех пор, как оба этих броузера стали широко распространеными, множество людей получили возможность работать со скриптами, написанными на языке JavaScript. Несомненно, это важный аргумент в пользу выбора языка JavaScript, как средства улучшения ваших Web-страниц.

Код скрипта JavaScript размещется непосредственно на HTML-странице. Чтобы увидеть, как это делается, давайте рассмотрим следующий простой пример:

С первого взгляда пример напоминает обычный файл HTML. Единственное новшество здесь — конструкция:

Это действительно код JavaScript. Чтобы видеть, как этот скрипт работает, запишите данный пример как обычный файл HTML и загрузите его в броузер, имеющий поддержку языка JavaScript.
А это результат выполнения этого файла (если Вы используете броузер, имеющий поддержку JavaScript, то у Вас будет 3 строки):

Это обычный HTML документ.
А это JavaScript!
Вновь документ HTML.

Признаем, что данный скрипт не столь полезен — то же самое и более просто можно было бы написать на «чистом» языке HTML. Он просто демонстрирует Вам тэг признака , интерпретируется как код на языке JavaScript. Здесь Вы также видите пример использования инструкции document.write() — одной из наиболее важных команд, используемых при программировании на языке JavaScript. Команда document.write() используется, когда необходимо что-либо написать в текущем документе (в данном случае таковым является наш HTML-документ). Так наша небольшая программа на JavaScript в HTML-документе пишет фразу «А это JavaScript!».

Загрузка прервана в Яндекс браузер – что делать

В последнее время все больше пользователей Яндекс браузера сталкиваются с проблемой блокировки загруок из Сети. Ошибка “Загрузка прервана” может возникать при скачивании всех файлов, либо определенных данных. В статье мы подробно расскажем о всех причинах данной ситуации, а также всех решениях такой блокировки.

Читать еще:  Виртуализация процессора для чего нужна

Объяснение канала

Креативный директор «Матч ТВ» Гавриил Гордеев прокомментировал «СЭ» срыв трансляции матча в Красноярске.

— Можете объяснить, что случилось? «Енисей» говорит, что проблема в Москве, вы писали — дело в доставке сигнала.

— Давайте попробую. Смотрите, есть «зауральская» линия «Ростелекома», есть «сибирская» линия. Одна основная, вторая — резервная. По ним идет прямой сигнал. Так получилось, что рухнули обе. Не в одну секунду, но они упали. Это не наша история: «Ростелеком» является подрядчиком нашего подрядчика, отвечающего за связь. Соответственно, обе линии упали, третьего пути нет. Съемка шла, но сигнал не передавался, мы этот путь в течение матча пытались найти.

— К концу первого тайма нашли?

— Мы взяли другой, более простой, кодек, чтобы нагрузка на аварийную линию шла меньше. Кодек более простой, но сигнал все равно шел в HD, зрителям этого было не заметно. Выходит, программным способом мы решили этот вопрос, и к концу тайма все заработало и восстановилось. Сижу вот, сам смотрю, прерываясь на комментарии.

— Для «Матч Премьер» это серьезная имиджевая потеря?

— Если бы мы не обращали на это внимание, ничего не делая, то это бы была имиджевая потеря. Но мы, наоборот, пытаемся эту проблему решить. Это скорее больше для подрядчика. Так или иначе моя задача — не переводить стрелки, а решить вопрос для зрителя, потому что его интересы для нас в приоритете.

— понесен наказание за срыв трансляции?

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

— Тем, кто покупал эту трансляцию, компенсация будет?

— Да, конечно, сделаем компенсацию всем, у кого оборвалась трансляция. Единственное — подписчики канала смогут посмотреть матч целиком только в записи. Тем, кто купил разовую трансляцию, мы дадим на другой матч

Читать еще:  Сворачиваются окна на Windows 7 что делать

— Странно, что возникли проблемы именно с Красноярском, откуда было столько прямых эфиров во время Универсиады.

— Вот на этот вопрос ответить не могу, я не знаю нюансов. Сомневаюсь, что с этим может быть связаны проблемы, но причины пока не установлены, их надо выяснять. Да, во время Универсиады все работало как надо.

  1. Общая схема
  2. Проблемы, специфичные для IFrame
    1. Буферизация скриптов браузером
    2. Буферизация страницы браузером
    3. Индикация загрузки

Бесконечный IFrame — одна из основ ранних, да и современных AJAX-приложений. В этом транспорте — больше всего тонкостей (естественно, это ж хак оконного интерфейса! , которые я постарался раскрыть и продемонстрировать в этой статье.

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

Классическая реализация — это когда клиент создает невидимый IFrame, ведущий на служебный URL. Сервер, получив соединение на этот URL, не закрывает его, а
время от времени присылает блоки сообщений . Появившийся в IFrame’е javascript тут же выполняется браузером, передавая информацию на основную страницу.

Таким образом, для передачи данных используется «бесконечный» ифрейм, через который сервер присылает все новые данные. Этот способ самый известный и кросс-браузерный.

Общая схема

  1. Клиент открывает невидимый IFrame на специальный URL
  2. При наступлении событии на сервере — в ифрейм тут же поступает
  • Соединение завершается:
    • при ошибках
    • каждые 20-30 секунд
    • для очистки памяти (иногда делаем новый IFrame) от старых сообщений
  • Когда создавали IFrame’ы, то им не предназначали такое использование, т.е этот способ — по сути, хак.

    Кроме общих проблем постоянных соединений, возникают еще некоторые сложности.

    Проблемы, специфичные для IFrame

    Буферизация скриптов браузером

    Некоторые браузеры не обрабатывают javascript-сообщения, пока не произойдет завершение соединения, либо не заполнится некий внутренний буфер.

    Читать еще:  Indexervolumeguid на флешке что это

    Решение — паддинг пробелами, как и в случае с прокси.

    Видел эту проблему с некоторыми версиями IE(старыми), с Safari. Паддинг в 1024 помогает как правило (Safari), 2048 — всегда (некоторые IE старые).

    Буферизация страницы браузером

    Некоторые версии IE не начинают выполнять javascript, пока страница не достигнет определенного размера. Поэтому первые несколько сообщений задерживаются, т.к браузер ждет, пока ифрейм подрастет.

    Решение — забить начало ифрейма чем-нибудь, поставить, например, 1К пробелов в начале.

    Индикация загрузки

    Процесс Server push должен происходить по возможности незаметно от пользователя, которого нужно уведомлять только при появлении соответствующих событий.

    А натура IFrame, наоборот, сопровождается индикацией: курсор-часики, полоса загрузки, и т.п. Наиболее отчетливо эта проблема была видна в IE6 до определенной версии, где индикатор прогресса слишком ярко анимировался и привлекал внимание.

    Решение проблемы индикации для транспорта iframe Вы найдете в статье AJAX-транспорт IFrame.

    Протестировать индикацию загрузки в вашем браузере можно, запустив загрузку бесконечного ифрейма.

    Вот — серверный код бесконечного ифрейма

    Клиентский код — еще проще. Каждое сообщение оборачивается в span и добавляется через DOM к диву.

    В общем виде недостатки и достоинства можно перечислить как

    • минимальная задержка и трафик
    • данные нельзя сжимать
    • ряд технических и визуальных проблем из-за хакерской природы транспорта iframe

    Отсутствие трафика заголовков и задержек дают возможность, например, отображать задержку до пользователя (лаг).

    Для этого каждую секунду (или несколько) — на сервер создается событие типа «я тут, время XXX». Javascript на клиенте, получив это сообщение, сравнивает время со своим, локальным (оба времени GMT) и выводит разницу как лаг.

    Кроме того, на onload-событие iframe (window.onload) обычно вешают обработчик. Конец загрузки iframe означает разрыв связи с сервером, поэтому такой обработчик вызывает функцию disconnect основного окна.

    Вы можете скачать исходник кросс-браузерного бесконечного iframe в конце статьи AJAX-транспорт IFrame.

    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector