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

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

Жанры

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

Эти дополнительные возможности демонстрируются в примере 22.2.

Пример 22.2. Демонстрация всех возможностей определения местонахождения

// Асинхронно определяет местонахождение и отображает его в указанном элементе,

function whereami(elt) {

// Этот объект передается методу getCurrentPosition в 3 аргументе

var options = {

// Чтобы получить координаты с высокой точностью (например, с устройства GPS),

// присвойте этому свойству значение true. Отметьте, однако, что это может

// увеличить расход энергии в аккумуляторах.

enableHighAccuracy: false, // Приблизительно: по умолчанию

// Определите свое значение, если допустимо брать координаты из кэша.

// По умолчанию имеет значение 0, что обеспечивает получение самой

// свежей информации.

maximumAge: 300000, // Пригодна информация, полученная в течение последних 5 минут

// Предельное время ожидания выполнения запроса.

// По умолчанию имеет значение Infinity, что соответствует бесконечному

// времени ожидания выполнения запроса вызовом метода getCurrentPosition

timeout: 15000 // Ждать не более 15 секунд

};

if (navigator.geolocation) // Запросить координаты, если возможно

navigator.geolocation.getCurrentPosition(success, error, options):

else

elt.innerHTML = "Возможность определения местонахождения " +

"не поддерживается этим броузером":

// Эта функция будет вызвана в случае неудачного выполнения запроса

function error(e) {

// Объект ошибки содержит числовой код и текстовое сообщение. Коды:

// 1: пользователь не дал разрешения на определение местонахождения

// 2: броузер не смог определить местонахождение

// 3: истекло предельное время ожидания

elt.innerHTML = "Ошибка определения местонахождения " + e.code + ": + е.message;

}

// Эта функция будет вызвана в случае успешного выполнения запроса

function success(pos) {

// Эти поля возвращаются всегда. Обратите внимание, что поле timestamp

// принадлежит внешнему объекту pos, а не вложенному coords,

var msg = "At " +

new Date(pos.timestamp).toLocaleString +

" вы находились в " + pos.coords.accuracy +
" метрах от точки " +

pos.coords.latitude +
" северной широты " +

pos.coords.longitude + " восточной долготы.":

// Если устройство возвращает высоту над уровнем моря, добавить эту информацию,

if (pos.coords.altitude) {

msg += " Вы находитесь на высоте " +

pos.coords.altitude + " ± " + pos.coords.altitudeAccuracy +

" метров над уровнем моря.";

}

// Если устройство возвращает направление и скорость движения,

// добавить и эту информацию.

if (pos.coords.speed) {

msg += " Вы перемещаетесь со скоростью " +

pos.coords.speed + "м/сек в направлении " + pos.coords.heading + ".";

}

elt.innerHTML = msg; // Отобразить информацию о местонахождении

}

}

22.2. Управление историей посещений

Веб-броузеры запоминают, какие документы загружались в окно, и предоставляют кнопки Back и Forward, позволяющие перемещаться между этими документами. Эта модель хранения истории посещений в броузерах появилась еще в те дни, когда документы были статическими и все вычисления выполнялись на стороне сервера. В настоящее время веб-приложения часто загружают содержимое динамически и отображают новые состояния приложения без полной перезагрузки документа. Такие приложения должны предусматривать собственные механизмы управления историей посещений, если необходимо дать пользователю возможность использовать кнопки Back и Forward для перехода из одного состояния приложения в другое интуитивно понятным способом. Спецификация HTML5 определяет два механизма управления историей посещений.

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

Страж Кодекса. Книга V

Романов Илья Николаевич
5. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса. Книга V

Гром Раскатного. Том 1

Володин Григорий Григорьевич
1. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Гром Раскатного. Том 1

Гранд

Демченко Антон Витальевич
3. Воздушный стрелок
Фантастика:
боевая фантастика
8.12
рейтинг книги
Гранд

Наследник

Майерс Александр
3. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наследник

Кадет Морозов

Шелег Дмитрий Витальевич
4. Живой лёд
Фантастика:
боевая фантастика
5.72
рейтинг книги
Кадет Морозов

Московское золото и нежная попа комсомолки. Часть Пятая

Хренов Алексей
5. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото и нежная попа комсомолки. Часть Пятая

Ученик

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

В теле пацана 6

Павлов Игорь Васильевич
6. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 6

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Травник

Назимов Константин Геннадьевич
1. Травник
Фантастика:
фэнтези
5.00
рейтинг книги
Травник

Пески веков (сборник)

Уиндем Джон Паркс Лукас Бейнон Харрис
1970. Зарубежная фантастика
Фантастика:
научная фантастика
5.00
рейтинг книги
Пески веков (сборник)

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

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

Алые перья стрел

Крапивин Владислав Петрович
Детские:
детские приключения
8.58
рейтинг книги
Алые перья стрел

На границе империй. Том 5

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