Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

var xhr = new XMLHttpRequest;

xhr.open("PUT", "/note");

xhr.send(editor.value);

xhr.onload = function {

localStorage.lastSaved = Date.now;

savebutton.disabled = true;

};

}

}

// Проверяет наличие новой версии заметки на сервере. Если она отсутствует,

// сохраняет текущую версию на сервере.

function sync {

if (navigator.onLine) {

var xhr = new XMLHttpRequest;

xhr.open("GET", "/note");

xhr.send;

xhr.onload = function {

var remoteModTime = 0;

if (xhr.status == 200) {

var remoteModTime = xhr.getResponseHeader("Last-Modified");

remoteModTime = new Date(remoteModTime).getTime;

}

if (remoteModTime > localStorage.lastModified) {

status("Ha сервере найдена более новая заметка.");

var useit =

confirm("Ha сервере имеется более новая версия\n” +

"заметки. Щелкните на кнопке Ok, чтобы\n" +

"использовать эту версию, или на кнопке\n"+

"Отмена, чтобы продолжить редактировать\n"+

"текущую версию и затереть версию на сервере ");

var now = Date.now;

if (useit) {

editor.value = localStorage.note = xhr.responseText;

localStorage.lastSaved = now;

status("Загружена более новая версия.");

}

else

status("Игнорируется более новая версия заметки.");

localStorage.lastModified = now;

}

else

status("Редактируется последняя версия заметки.");

if (localStorage.lastModified > localStorage.lastSaved) {

save;

}

editor.disabled = false; // Разрешить доступ к редактору

editor.focus; // И поместить в него курсор ввода

}

}

else { // В автономном режиме мы не можем синхронизироваться

status("Невозможно синхронизироваться в автономном режиме");

editor.disabled = false; editor.focus;

}

}

21

Работа с графикой и медиафайлами на стороне клиента

В этой главе рассказывается о том, как манипулировать изображениями, управлять аудио- и видеопотоками и рисовать графику. В разделе 21.1 описываются традиционные приемы реализации визуальных эффектов на языке JavaScript, таких как смена изображений, когда одно статическое изображение сменяется другим при наведении указателя мыши. В разделе 21.2 описываются элементы

<audio>
и
<video>,
определяемые стандартом HTML5, и их прикладные интерфейсы в языке JavaScript.

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

• Объем программного кода, создающего изображение на стороне клиента, обычно много меньше, чем объем самого изображения, что позволяет сберечь существенную долю полосы пропускания.

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

• Создание графики на стороне клиента прекрасно согласуется с положениями современной архитектуры веб-приложений, в которой серверы поставляют данные, а клиенты управляют представлением этих данных.

В разделе 21.3 описывается Scalable Vector Graphics, или SVG. SVG - это язык разметки, основанный на языке XML, предназначенный для описания графических изображений. Изображения на языке SVG можно создавать и изменять в сценариях на языке JavaScript с использованием модели DOM. В заключение в разделе 21.4 мы познакомимся с элементом

<canvas>,
определяемым стандартом HTML5, и его обширным прикладным интерфейсом на языке JavaScript, обеспечивающим возможность создания графических изображений. Элемент <canvas> является революционной технологией, и он подробно описан в этом разделе.

Поделиться:
Популярные книги

Свет горизонта

BlackRaven
1. Свет горизонта
Фантастика:
фэнтези
6.00
рейтинг книги
Свет горизонта

Гримуар темного лорда II

Грехов Тимофей
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
5.25
рейтинг книги
Гримуар темного лорда II

Ваше Сиятельство 8

Моури Эрли
8. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 8

Встреча

Видум Инди
7. Петя и Валерон
Фантастика:
рпг
аниме
попаданцы
5.00
рейтинг книги
Встреча

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5

Города в полете

Блиш Джеймс Бенджамин
Фантастика:
космическая фантастика
4.25
рейтинг книги
Города в полете

Практик

Листратов Валерий
5. Ушедший Род
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Практик

География растений

Гумбольдт Александр
Классики естествознания
Научно-образовательная:
ботаника
7.50
рейтинг книги
География растений

Магнатъ

Кулаков Алексей Иванович
4. Александр Агренев
Приключения:
исторические приключения
8.83
рейтинг книги
Магнатъ

На границе империй. Том 7. Часть 5

INDIGO
11. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 7. Часть 5

Я еще не бог. Книга XXXV

Дрейк Сириус
35. Дорогой барон!
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Я еще не бог. Книга XXXV

Представитель

Семин Никита
6. Переломный век
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Представитель

Газлайтер. Том 22

Володин Григорий Григорьевич
22. История Телепата
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Газлайтер. Том 22

Серые сутки

Сай Ярослав
4. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Серые сутки