|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
|||||||||||
indexedDB get() возвращает пустой объект. А как получить значение по ключу?!04.08.2022, 23:13. Показов 1248. Ответов 10
Доброго времени суток, только столкнулся с indexedDB, пробую по всяким (судя по всему второсортным) статьям накидать минимальный рабочий функционал, на текущий момент времени у меня:
- Создаётся база, в ней создаётся хранилище объектов "cart"; - В хранилище добавляются объекты (в инспекторе они видны); - Получаю все объекты из хранилища путём перебора курсора (не спрашивайте "зачем" - пробую всё, что кажется полезным/интересным); - Удаляю объекты из хранилища по ключу; - Казалось бы - всё гуд, но споткнулся на get(id) - делаю по "шаблону" (работающему в предыдущих операциях), однако получаю на выходе пустой объект. Помогите, пож., разобраться: если мне не нужен курсор и перебор всего, а нужен именно объект по ключу, корректно же делать сразу get() без создания доп.сущности курсора? И если "да", то почему возвращается пустой объект (такой ключ в хранилище существует и ему соответствует вполне конкретный объект)...? Код (выдержка):
0
|
|||||||||||
| 04.08.2022, 23:13 | |
|
Ответы с готовыми решениями:
10
Написать функцию которая возвращает значение по ключу, если ключа нет, то создает ключ со значением 3 и возвращает его
Как получить значение поля в запросе по ключу |
|
54 / 32 / 3
Регистрация: 25.07.2022
Сообщений: 212
|
||||||||||||||||||||||
| 05.08.2022, 00:05 | ||||||||||||||||||||||
|
ИмяПользователя,
Вот так удобнее просматривать JSON структуры... https://jsonformatter.org/
ИмяПользователя, У вас есть общий массив, а в нем элементы с именами "2495", "7938", "57858", "102435", "134404", "1014529", "1119489", "1149528". Можно считать их ключами, но вы обращаетесь к ним не по полю/аргументу id, а по самому имени. То есть условно, если бы имена были такими:
Добавлено через 1 минуту ИмяПользователя,
2495 и "2495" это разные вещи. Число и строка. Попробуйте искать не 2495, а "2495". :3 Добавлено через 35 секунд У вас элемент с именем "2495", а вы ищите число 2495, не строку "2495" Добавлено через 57 секунд Я в indexedDB не бум бум, но есть опыт работы с другими СУБД. Есть вероятность, что используя просто число, вы ищите объект который по счету находится на 2495-ой позиции, а не ключ "2495". Добавлено через 7 минут ИмяПользователя, https://developer.mozilla.org/... dex/getKey
0
|
||||||||||||||||||||||
|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
||||||||
| 05.08.2022, 00:11 [ТС] | ||||||||
|
Есть код удаления, который работает, выглядит так:
Почему удаление "по имени/ключу" работает, а получение объекта не хочет...?! Как должен выглядеть рабочий код получения элемента??! Или с indexedDB в принципе надо работать только через курсоры? М.б. я это упустил где-то в размытых описаниях? Не хочется плодить лишнего кода/сущностей. Добавлено через 4 минуты Разницу между строкой/числом понимаю, изначально везде подставляется переменная, в ней строка, потом уже плюнул на переменные начал явно писать в наколенке значение в том и ином виде (в первом посте закоменченая шестая строка когда не сработала - появилась седьмая, просто что бы убедиться, что дело не в этом).
0
|
||||||||
|
54 / 32 / 3
Регистрация: 25.07.2022
Сообщений: 212
|
||||||||
| 05.08.2022, 00:13 | ||||||||
|
ИмяПользователя,
Так вот у вас там небольшая неразбериха. Раз имена у объектов итак уникальные, зачем добавлять ещё и поля айди. Можно просто от него отказаться. Поле айди нужно если имена могут совпать. Допустим если бы вместо "2495" было бы "Петя" и могло быть несколько Петь: "Петя", "Петя", "Петя":
0
|
||||||||
|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
||
| 05.08.2022, 00:14 [ТС] | ||
|
0
|
||
|
54 / 32 / 3
Регистрация: 25.07.2022
Сообщений: 212
|
|||||||
| 05.08.2022, 00:20 | |||||||
|
Тогда бы пришлось им давать уникальные id:
Чтобы отличать объекты с одинаковыми именами по id. Добавлено через 34 секунды ИмяПользователя,
Добавлено через 1 минуту PS: Хотя вверху не совсем дата последнего кормления, а скорее TimeStamp отпечаток времени (дата, время) бывают ещё с часовым поясом... Добавлено через 3 минуты Не стесняйтесь, спрашивайте ![]() Ведь кто тут ещё так хорошо объяснит что-либо, кроме меня
0
|
|||||||
|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
||
| 05.08.2022, 00:21 [ТС] | ||
|
Каждый ключ - уникальный, по идее должно быть всё просто: запрашивая инфу по ключу я должен получить либо пустой объект (что у меня и происходит), либо объект, хранящийся под этим ключом - то, чего ожидаю, но не получаю... Подозреваю - запутался в асинхронности вызовов. Подозреваю, что пытаюсь получить значения через get раньше, чем та же транзакция создалась, но подозрения - плохо, круто, когда знаешь, а не подозреваешь! ))
0
|
||
|
54 / 32 / 3
Регистрация: 25.07.2022
Сообщений: 212
|
|||
| 05.08.2022, 00:29 | |||
|
Кроме меня тут и спросить некого
. Все остальные наверное уже спят ...Добавлено через 49 секунд
![]() Добавлено через 1 минуту ИмяПользователя,
![]() Добавлено через 1 минуту Жду полный код ![]() Добавлено через 3 минуты Не по теме: смайлик описывающий debug процесс. Добивать код пока тот не перестанет мучаться...
0
|
|||
|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
|||||||
| 05.08.2022, 11:37 [ТС] | |||||||
|
PS. В моём случае находит и возвращает записи если либо как в примере - цифру написать, либо явно привести:
Всем спасибо)
0
|
|||||||
|
|
||
| 05.08.2022, 14:36 | ||
Сообщение было отмечено ИмяПользователя как решение
РешениеНе по теме: Англоязычных вчера сам много пересмотрел, пока вашу тему читал )
2
|
||
|
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
|
||
| 05.08.2022, 16:42 [ТС] | ||
|
Что я только не делал в инспекторе объектов (и обновлял "таблицу", и всю базу "обновить" нажимал, и даже закрыл/открыл браузер) - данные, отображаемые в хроме, в инспекторе объектов на вкладке Application ОТЛИЧАЮТСЯ от данных, возвращаемых после запроса из базы!! В инспекторе показывается первоначальное "состояние" объекта (каким он был ДОБАВЛЕН в хранилище), при этом если его удалить - он удаляется и в инспекторе, если добавить - добавляется заново (конечно после ручного нажатия рефреша в инспекторе), НО(!) при изменении (.put()) заставить инспектора перечитать/изменить вывод я так и не смог!! "С" - стабильность!!! ))
0
|
||
| 05.08.2022, 16:42 | |
|
Помогаю со студенческими работами здесь
11
Получить адрес на переменную\объект, потом от этого адреса создать указатель на объект и изменить значение. Как? Объект не возвращает значение Получить значение по ключу в treeview
Получить значение по ключу из Map Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|