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

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

Жанры

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

// Создать хранилище объектов, указав имя хранилища и объект с параметрами,

// включающий "путь к ключу", определяющий имя свойства-ключа для этого

// хранилища. (Если опустить путь к ключу, IndexedDB определит свой

// собственный уникальный целочисленный ключ.)

var store = db.createObjectStore("zipcodes", // имя хранилища

{ keyPath: "zipcode" });

//
Создать в хранилище объектов индекс по названию города.

// Строка пути к ключу передается этому методу непосредственно,

// как обязательный аргумент, а не как свойство объекта с параметрами,

store.createlndex("cities", "city");

// Теперь необходимо загрузить информацию о почтовых индексах, преобразовать

// ее в объекты и сохранить эти объекты в созданном выше хранилище.

//

// Файл с исходными данными содержит строки следующего вида:

//

// 02130,Jamaica Plain,MA.42.309998,-71.11171

// 02131,Roslindale,MA,42.284678,-71.13052

// 02132,West Roxbury.MA,42.279432,-71.1598

// 02133,Boston,MA,42.338947,-70.919635

// 02134,Allston,MA, 42.355147,-71.13164

//

// Как ни странно, но почтовая служба США не обеспечивает свободный доступ

// к этой информации, поэтому мы будет использовать устаревшие данные переписи

// с сайта: http://mappinghacks.com/2008/04/28/civicspace-zip-code-database/

// Для загрузки данных используется объект XMLHttpRequest.

// Но для обработки данных по мере поступления будут использованы

// новые события onload и onprogress, определяемые спецификацией XHR2

var xhr = new XMLHttpRequest; // Объект XHR для загрузки данных

xhr.open("GET", "zipcodes.csv"); // HTTP-запрос типа GET для этого URL

xhr.send; // Запустить немедленно

xhr.oneг гог = status; //
Отображать сообщения об ошибках

var lastChar = 0, numlines = 0; // Уже обработанный объем

// Обрабатывает файл базы данных блоками, по мере загрузки

xhr.onprogress = xhr.onload = function(e) { // Сразу два обработчика!

// Обработать блок между lastChar и последним принятым символом

// перевода строки. (Нам требуется отыскать последний символ

// перевода строки, чтобы не обработать неполную запись)

var lastNewline = xhr.responseText.lastIndexOf("\n");

if (lastNewline > lastChar) {

var chunk = xhr.responseText.substring(lastChar, lastNewline)

lastChar = lastNewline + 1; // Откуда начинать в следующий раз

// Разбить новый фрагмент на строки

var lines = chunk.split("\n”);

numlines += lines.length;

// Чтобы вставить информацию о почтовом индексе в базу данных, необходимо

// получить объект транзакции. Все операции добавления объектов

// в базу данных, выполняемые с использованием этого объекта,

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

// когда броузер вернется в цикл обработки событий.

// Чтобы создать объект транзакции, следует определить,

// какие хранилища объектов будут использоваться (у нас имеется всего

// одно хранилище). Кроме того, требуется сообщить, что будет

// выполняться не только чтение, но и запись в базу данных:

var transaction = db.transaction(["zipcodes’'], // хранилища

IDBTransaction.READ_WRITE);

// Получить ссылку на хранилище из объекта транзакции

var store = transaction.objectStore("zipcodes");

// Теперь обойти в цикле строки в файле с почтовыми индексами,

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

Последний реанорец. Том IX

Павлов Вел
8. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Последний реанорец. Том IX

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Наномашины, Кошмар Академии! Том 10

Новиков Николай Васильевич
10. Первый среди карапузов
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Наномашины, Кошмар Академии! Том 10

Родословная. Том 4

Ткачев Андрей Юрьевич
4. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 4

Сильнейший Столп Империи. Книга 4

Ермоленков Алексей
4. Сильнейший Столп Империи
Фантастика:
фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 4

Боярышня Дуняша 2

Меллер Юлия Викторовна
2. Боярышня
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Боярышня Дуняша 2

Мужчина не моей мечты

Ардова Алиса
1. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.30
рейтинг книги
Мужчина не моей мечты

Меткий стрелок. Том II

Вязовский Алексей
2. Меткий стрелок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Меткий стрелок. Том II

Княжья Русь

Мазин Александр Владимирович
6. Варяг
Приключения:
исторические приключения
9.04
рейтинг книги
Княжья Русь

Язычник

Мазин Александр Владимирович
5. Варяг
Приключения:
исторические приключения
8.91
рейтинг книги
Язычник

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Кодекс Охотника. Книга XXXIII

Винокуров Юрий
33. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIII