<!doctype html> <html> <head> <style> pre { padding: 5px; border: 1px solid black; } </style> <script> var db; try { if (window.openDatabase) { db = openDatabase("StressTest1", "1.0", "Database Stress Test", 200000); if (!db) alert("Failed to open the database on disk. This is probably because the version was bad or there is not enough space left in this domain's quota"); } else alert("Couldn't open the database."); } catch(err) { } var highestId = 0; var allData = new Array(); function newData() { var id = ++highestId; allData.push(id); db.transaction(function (tx) { tx.executeSql("INSERT INTO FillerData (id, filler) VALUES (?, randomblob(1024))", [id]); }); } function testOpen() { for (var i = 0; i < 4; i++) { newData(); } setTimeout("testClose();", 0); } function testClose() { db.transaction(function(tx) { for (var i = 0; i < allData.length; i++) tx.executeSql("DELETE FROM FillerData WHERE id = ?", [allData[i]]); allData = new Array(); }); setTimeout("testOpen();", 0); } function updateTransactionCount() { document.getElementById("transactionCount").innerHTML = "Current Transaction Count: " + highestId; setTimeout("updateTransactionCount();", 1000); } function loaded() { db.transaction(function(tx) { tx.executeSql("SELECT COUNT(*) FROM FillerData", [], function(result) { }, function(tx, error) { tx.executeSql("CREATE TABLE FillerData (id REAL UNIQUE, filler)", [], function(result) { }); }); }); setTimeout("testOpen();", 0); setTimeout("updateTransactionCount();", 1000); } addEventListener('load', loaded, false); </script> </head> <body> This test stresses the database threading code by constantly opening transactions to the test database at a fast rate.<br> See radar 5729446 for more details.<br> <pre id="transactionCount">Current Transaction Count: 0</pre> </body> </html>