Instead of opening several transactions (read a table, write to a table, write to another table, etc) is it possible to do this all from a single transaction as long as you are using an appropriate IDBTransaction?
Mozilla says: “The only way to keep the transaction active is to make a request on it. When the request is finished you’ll get a DOM event and, assuming that the request succeeded, you’ll have another opportunity to extend the transaction during that callback.” which is a little vague. Does that mean if I provide an event handler for the DOM callback that I can use the transaction at any point in that callback without ever having to worry about the transaction being closed?
https://developer.mozilla.org/en/IndexedDB/Using_IndexedDB#Adding_data_to_the_database
IndexedDB transactions commit as soon as the last callback is fired, so the way to keep them alive is to pass them along via callbacks.
I’m sourcing my transaction info from Jonas Sicking, a Mozilla dev and co-spec writer for IndexedDB, who commented on this excellent blog post to say the following: