IDBTransaction.onabort

« IDBTransaction

The IDBTransaction.onabort event handler allows you to run code when the transaction is aborted.

Syntax

  attribute  EventHandler  onabort;

Example

// Let us open our database
var request = window.indexedDB.open("toDoList", 4);
    
// store the result of opening the database in the db variable.
db = request.result;

// Create a new object ready for being inserted into the IDB
var newItem = [
  { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no" }
];

// open a read/write db transaction, ready for adding the data
var transaction = db.transaction(["toDoList"], "readwrite");

// report on the success of opening the transaction
transaction.oncomplete = function(event) {
  note.innerHTML += '<li>Transaction opened for task addition.</li>';
};

transaction.onerror = function(event) {
  note.innerHTML += '<li>Transaction not opened due to error. Duplicate items not allowed.</li>';
};

// create an object store on the transaction
var objectStore = transaction.objectStore("toDoList");

// add our newItem object to the object store
var request = objectStore.add(newItem[0]);  

request.onsuccess = function(event) {
  // report the success of our new item going into the database
  note.innerHTML += '<li>New item added to database.</li>';
};

// Attempt to abort the transaction we just did
transaction.abort();

transaction.onabort = function() {
  // Report when the transaction was successfully aborted
  console.log("Transaction aborted!");
};

Specifications

Specification Status Comment
Indexed Database API Candidate Recommendation  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 12-webkit
21
 
4.0 (2.0) 10 17 Not supported
Feature Android Firefox Mobile (Gecko) Firefox OS IE Phone Opera Mobile Safari Mobile
Basic support 4.4 6.0 (6.0) 1.0.1 10 17 Not supported

Be careful in Chrome as it still implements the old specification along the new one. Similarly it still has the prefixed webkitIndexedDB property even if the unprefixed indexedDB is present.

See also

  • Using IndexedDB
  • The reference application for the examples in this reference: To-do Notifications (view example live.) Not every snippet appears in this example, but every example uses the same data structure and syntax, and they will make sense in the context of this example.

Document Tags and Contributors

Contributors to this page: chrisdavidmills
Last updated by: chrisdavidmills,