Advertisement
Guest User

Untitled

a guest
Jan 14th, 2013
726
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>IndexedDB</title>
  6. <script type="text/javascript">
  7. var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
  8. var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
  9. var db;
  10. (function () {
  11. var peopleData = [
  12. { name: "John Dow", email: "john@company.com" },
  13. { name: "Don Dow", email: "don@company.com" }
  14. ];
  15.  
  16. function initDb() {
  17. var request = indexedDB.open("PeopleDB", 1);
  18. request.onsuccess = function (evt) {
  19. db = request.result;
  20. };
  21.  
  22. request.onerror = function (evt) {
  23. console.log("IndexedDB error: " + evt.target.errorCode);
  24. };
  25.  
  26. request.onupgradeneeded = function (evt) {
  27. var objectStore = evt.currentTarget.result.createObjectStore(
  28. "people", { keyPath: "id", autoIncrement: true });
  29.  
  30. objectStore.createIndex("name", "name", { unique: false });
  31. objectStore.createIndex("email", "email", { unique: true });
  32.  
  33. for (i in peopleData) {
  34. objectStore.add(peopleData[i]);
  35. }
  36. };
  37. }
  38.  
  39. function contentLoaded() {
  40. initDb();
  41. var btnAdd = document.getElementById("btnAdd");
  42. var btnDelete = document.getElementById("btnDelete");
  43. var btnPrint = document.getElementById("btnPrint");
  44.  
  45. btnAdd.addEventListener("click", function () {
  46. var name = document.getElementById("txtName").value;
  47. var email = document.getElementById("txtEmail").value;
  48.  
  49. var transaction = db.transaction("people", IDBTransaction.READ_WRITE);
  50. var objectStore = transaction.objectStore("people");
  51. var request = objectStore.add({ name: name, email: email });
  52. request.onsuccess = function (evt) {
  53. // do something after the add succeeded
  54. };
  55. }, false);
  56.  
  57. btnDelete.addEventListener("click", function () {
  58. var value = document.getElementById("txtID").value;
  59. var id = parseInt(value);
  60.  
  61. var transaction = db.transaction("people", IDBTransaction.READ_WRITE);
  62. var objectStore = transaction.objectStore("people");
  63. var request = objectStore.delete(id);
  64. request.onsuccess = function(evt) {
  65. console.log('deleted ' + evt.target.result);
  66. };
  67. request.onerror = function(evt) {
  68. console.log('fail deleting ' + id);
  69. console.log(evt);
  70. };
  71. }, false);
  72.  
  73. btnPrint.addEventListener("click", function () {
  74. var output = document.getElementById("printOutput");
  75. output.textContent = "";
  76.  
  77. var transaction = db.transaction("people", IDBTransaction.READ_WRITE);
  78. var objectStore = transaction.objectStore("people");
  79.  
  80. var request = objectStore.openCursor();
  81. request.onsuccess = function(evt) {
  82. var cursor = evt.target.result;
  83. if (cursor) {
  84. output.textContent += "id: " + cursor.key +
  85. " is " + cursor.value.name + " ";
  86. cursor.continue();
  87. }
  88. else {
  89. console.log("No more entries!");
  90. }
  91. };
  92. }, false);
  93. }
  94.  
  95. window.addEventListener("DOMContentLoaded", contentLoaded, false);
  96. })();
  97. </script>
  98. </head>
  99. <body>
  100. <div id="container">
  101. <label for="txtName">
  102. Name:
  103. </label>
  104. <input type="text" id="txtName" name="txtName" />
  105. <br />
  106. <label for="txtEmail">
  107. Email:
  108. </label>
  109. <input type="email" id="txtEmail" name="txtEmail" />
  110. <br />
  111. <input type="button" id="btnAdd" value="Add Record" />
  112. <br />
  113. <label for="txtID">
  114. ID:
  115. </label>
  116. <input type="text" id="txtID" name="txtID" />
  117. <br />
  118. <input type="button" id="btnDelete" value="Delete Record" />
  119. <br />
  120. <input type="button" id="btnPrint" value="Print objectStore" />
  121. <br />
  122. <output id="printOutput">
  123. </output>
  124. </div>
  125.  
  126. <script type="text/javascript" src="../../jsc/dev-ydn.db-0.29.js"></script>
  127. </body>
  128. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement