Khamzabek, тогда получается что всё сводится к тому, как я предложил, сначала пробовать add, если всё ок - то запускаю свою функцию, если ошибка, то делаем put для обновления и не запускаем доп функцию.
Khamzabek, база создается с явным ключом db.createObjectStore('mytable', {keyPath: 'id'});, однако получаю ошибку:
Uncaught DOMException: Failed to execute 'put' on 'IDBObjectStore': The object store uses in-line keys and the key parameter was provided.
Как я понял это означает что я использую ключ, хотя в базе он инкрементный. Но если пойти в Application-indexedDB там поиск идет по Primary key = 'id'.
пока что вижу что всегда срабатывает Record added, хотя посылаю несколько раз одни и те же данные.
Как вариант еще думал сначала пробовать делать add, если вышла ошибка, то тогда put(так как мне в любом случае нужно сохранить обновленные данные), но запускать другую функцию только если данных ранее не было.