JavaScript. Подробное руководство, 6-е издание
Шрифт:
// Этот обработчик событий будет вызван несколько раз, по одному
// для каждой записи, соответствующей запросу, и еще один раз
// с пустым курсором, указывающим на окончание результатов,
var cursor = request.result // Курсор в свойстве
request.result if (!cursor) return; // Нет курсора = нет результатов
var object = cursor.value // Получить совпавшую запись
callback(object); // Передать ее указанной функции
cursor.continue; // Запросить следующую запись
};
});
}
// Эта функция используется обработчиком onchange в документе ниже.
// Она выполняет запрос к БД и отображает результаты
function displayCity(zip) {
lookupCity(zip, function(s) { document.getElementById('city').value=s; });
}
// Это другая функция, используемая обработчиком onchange в документе ниже.
// Она выполняет запрос к БД и отображает результаты
function displayZipcodes(city) {
var output = document.getElementById("zipcodes");
output.innerHTML = "Найденные индексы:";
lookupZipcodes(city, function(o) {
var div = document.createElement("div");
var text = o.zipcode + ": + o.city + ", " + o.state;
div.appendChild(document.createTextNode(text));
output.appendChild(div);
});
}
// Настраивает структуру базы данных и заполняет ее данными, затем передает базу данных
// функции f. Эта функция вызывается функцией withDB, если база данных еще не была
// инициализирована. Это самая хитрая часть программы, поэтому мы оставили ее напоследок,
function initdb(db, f) {
// Загрузка информации о почтовых индексах и сохранение ее в базе данных может
// потребовать некоторого дополнительного времени при первом запуске этого
// приложения. Поэтому необходимо вывести сообщение, извещающее о выполнении операции,
var statusline = document.createElement("div");
statusline.style.cssText =
"position:fixed; left:0px; top:0px; width:100%;" +
"color:white; background-color: black; font: bold 18pt sans-serif;" +
"padding: 10px; ";
document.body.appendChild(statusline);
function status(msg) { statusline.innerHTML = msg.toString; };
status("Инициализация базы данных почтовых индексов");
// Единственное место, где можно определить или изменить структуру
// базы данных IndexedDB - обработчик onsucess запроса setVersion.
var request = db.setVersion("1"); // Попробовать изменить версию БД
request.onerror = status; // Вывести сообщение в случае ошибки
request.onsuccess = function { // Иначе вызвать эту функцию
// База данных почтовых индексов включает единственное хранилище.
// Оно хранит объекты следующего вида: {
// zipcode: "02134", // Отправьте на телепередачу Zoom! [60] :-)
60
В 1972-1978 гг. телекомпания WGBH-TV в Бостоне выпускала детское телешоу «ZOOM». Детям предлагалось после шоу «выключить телевизор и сделать то, о чем рассказывалось в передаче...». Дети, обычно семеро, участвовавшие в шоу, играли в игры, ставили пьесы, рассказывали стихи, ставили научные эксперименты, вели беседы на такие темы, как больницы, предрассудки и другие, предлагаемые телезрителями. Передача имела призыв со словами: «Напишите на конверте ZOOM, Зет-Дабл-Оу-М, Бокс 3-5-0, Бостон, Масс 0-2-1-3-4 и отправьте его на ZOOM!». Весь текст проговаривался, кроме индекса, который пропевался. Описание в Википедии:(1972_TV_series).
– Прим, перев.
// city: "Allston",
// state: "MA",
// latitude: "42.355147",
// longitude: '-71.13164”
// }
//
// Свойство "zipcode" используется в качестве ключа базы данных
// Кроме того, создается индекс по названию города
Поделиться:
Популярные книги
Хозяин Теней 7
7. Безбожник
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 13
13. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Тринадцатый X
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Вечный. Книга IV
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Второгодка. Книга 3. Ученье свет
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
5.00
рейтинг книги
Гримуар темного лорда VII
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Цикл "Отмороженный". Компиляция. Книги 1-14
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Гамбургский счет: Статьи – воспоминания – эссе (1914–1933)
Научно-образовательная:
история
5.00
рейтинг книги
Моров. Том 3
2. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Глэрд IX: Легионы во Тьме
9. Глэрд
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Изгой Проклятого Клана. Том 3
3. Изгой
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Пересмешник
Фантастика:
фэнтези
9.38
рейтинг книги
Человеческое познание его сферы и границы
Научно-образовательная:
философия
6.25
рейтинг книги
Тринадцатый V
5. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00