Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

callback("Неизвестный индекс");

}

});

}

// По указанному названию города отыскивает все почтовые индексы для всех

// городов (в любом штате) с этим названием (с учетом регистра символов).

// Асинхронно передает результаты по одному указанной функции

function lookupZipcodes(city, callback) {

withDB(function(db) {

// Как и выше, создаем транзакцию и получаем хранилище объектов

var transaction = db.transaction(["zipcodes"], IDBTransaction.READ_0NLY, 0);

var store = transaction.objectStoreC'zipcodes");

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

var index = store.index(”cities");

// Этот запрос может вернуть несколько результатов, поэтому, чтобы

// получить их все, следует использовать объект курсора. Чтобы создать

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

var range = new IDBKeyRange.only(city); // Диапазон с одним ключом

// Все, что выше, выполняется синхронно.

// Теперь нужно запросить курсор, который возвращается асинхронно,

var request = index.openCursor(range); // Запросить курсор

request.onerror = logerr; // Сообщать об ошибках

request.onsuccess = function { // Передать курсор этой функции

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

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

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

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;

  • Читать дальше
  • 1
  • ...
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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