Persistence - transactions
by gotomanners
HTML
<script src="http://jacobmumm.com/demos/persistencetask/lib/persistence.js"></script>
<script src="http://jacobmumm.com/demos/persistencetask/lib/persistence.store.sql.js"></script>
<script src="http://jacobmumm.com/demos/persistencetask/lib/persistence.store.websql.js"></script>
<button id="operationOne">Operation 1</button>
<button id="operationTwo">Operation 2</button>
<ul id="result"></ul>
JavaScript
$(document).ready(function() {
persistence.debug = false;
persistence.store.websql.config(persistence, 'xyz_db', 'xyz', 5 * 1024 * 1024);
var User = persistence.define('User', {
name: "TEXT",
age: "INT",
sex: "TEXT"
});
User.index(["name"], {unique:true});
var userList = [{name:'Avery',age:20,sex:'F'},
{name:'Ben',age:21,sex:'M'},
{name:'Cathy',age:22,sex:'F'},
{name:'David',age:23,sex:'M'},
{name:'Evelyn',age:24,sex:'F'},
{name:'Frank',age:25,sex:'M'},
{name:'Gwyneth',age:26,sex:'F'}];
persistence.reset(function() {
persistence.schemaSync(function() {
for(var u in userList) {
var aUser = new User({
name: userList[u].name,
age: userList[u].age,
sex: userList[u].sex
});
persistence.add(aUser);
}
persistence.transaction(function (tx) {
if (tx) {
persistence.flush(tx, function() {
$("#result").append($("<li/>").text("Flush complete"));
});
}
});
});
});
var show = function show(users){
users.forEach(function(user) {
$("#result").append($("<li/>").text(user.name+" "+user.age+" "+user.sex));
});
};
var logAllUsers = function logAllUsers(dbTransaction) {
User.all().list(dbTransaction, function(users) {
$("#result").append($("<li/>").text("##### All Users #####"));
show(users);
});
};
var logOneUser = function logOneUser(dbTransaction) {
User.all().one(dbTransaction, function(user) {
$("#result").append($("<li/>").text("#### One User #####"));
show([user]);
});
};
...