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

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

Жанры

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 определяет два механизма управления историей посещений.

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

Я не царь. Книга XXIV

Дрейк Сириус
24. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я не царь. Книга XXIV

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Тринадцатый XII

NikL
12. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
7.00
рейтинг книги
Тринадцатый XII

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

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

Девочка из прошлого

Тоцка Тала
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка из прошлого

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

Бандит

Щепетнов Евгений Владимирович
1. Петр Синельников
Фантастика:
фэнтези
7.92
рейтинг книги
Бандит

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Слезы Эйдена 1

Владимиров Денис
11. Глэрд
Фантастика:
боевая фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Слезы Эйдена 1

Принадлежать им

Зайцева Мария
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Принадлежать им

Шайтан Иван 6

Тен Эдуард
6. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
историческое фэнтези
7.00
рейтинг книги
Шайтан Иван 6

Перешагнуть пропасть

Муравьёв Константин Николаевич
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Перешагнуть пропасть

Дважды одаренный

Тарс Элиан
1. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Дважды одаренный

Граф Книга третья

Первухин Андрей Евгеньевич
10. Ученик
Фантастика:
фэнтези
попаданцы
5.25
рейтинг книги
Граф Книга третья