Spec-Zone.ru › Web APIs

IDBIndex: свойство name

Базовая Широко доступная

Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках Web Workers.

Свойство name интерфейса IDBIndex содержит строку, которая задаёт имя индекса.

Значение

Строка, определяющая имя индекса.

Исключения

Возникает несколько исключений при попытке изменить имя индекса.

InvalidStateError DOMException

Выбрасывается, если индекс или его хранилище объектов было удалено или текущая транзакция не является транзакцией обновления. Переименовать индексы можно только во время транзакций обновления, то есть когда режим равен "versionchange".

TransactionInactiveError DOMException

Выбрасывается, если текущая транзакция не активна.

ConstraintError DOMException

Выбрасывается, если индекс уже использует указанное name.

Примеры

В следующем примере мы открываем транзакцию и хранилище объектов, затем получаем индекс lName из простой базы данных контактов. Затем мы открываем базовый курсор на индексе, используя IDBIndex.openCursor() — это работает так же, как открытие курсора непосредственно на IDBObjectStore с помощью openCursor(), за исключением того, что возвращаемые записи сортируются на основе индекса, а не первичного ключа.

Имя индекса записывается в консоль: оно должно быть возвращено как lName.

Наконец, мы перебираем каждую запись, вставляя данные в таблицу HTML. Для полного рабочего примера обратитесь к нашему демонстрационному репозиторию IndexedDB-examples (посмотреть пример онлайн).

function displayDataByIndex() {
  tableEntry.textContent = "";
  const transaction = db.transaction(["contactsList"], "readonly");
  const objectStore = transaction.objectStore("contactsList");

  const myIndex = objectStore.index("lName");
  console.log(myIndex.name);

  myIndex.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const tableRow = document.createElement("tr");
      for (const cell of [
        cursor.value.id,
        cursor.value.lName,
        cursor.value.fName,
        cursor.value.jTitle,
        cursor.value.company,
        cursor.value.eMail,
        cursor.value.phone,
        cursor.value.age,
      ]) {
        const tableCell = document.createElement("td");
        tableCell.textContent = cell;
        tableRow.appendChild(tableCell);
      }
      tableEntry.appendChild(tableRow);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}

Спецификации

Спецификация
API индексированной базы данных 3.0
# ref-for-dom-idbindex-name①

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
name 23 12 10 15 8 25 22 14 8 1.5 4.4
renaming_through_name_setter 55 ≤79 49 42 10.1 55 49 42 10.3 6.0 55

См. также

  • Использование IndexedDB
  • Начальные транзакции: IDBDatabase
  • Использование транзакций: IDBTransaction
  • Указание диапазона ключей: IDBKeyRange
  • Получение и изменение данных: IDBObjectStore
  • Использование курсоров: IDBCursor
  • Пример ссылки: Заметки о задачах (посмотреть пример онлайн).

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex/name

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API