HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]
使用环境:Chrome 36.0...+
技术:HTML5
目的:习练HTML5
功能概述:记录管理每天工作内容,便签清单
HTML5+CSS3呈现UI,JavaScript操作数据库,SQLite存储数据
预览:

关键代码:
// save data
function dataStorage(o) { for (var i = 0; i < o.childNodes.length; i++) {
if (o.childNodes[i].nodeName == "P") {
o.removeChild(o.childNodes[i]);
}
} if (o.innerText.replace(/\s+/g, "").length == 0) {
return;
} var task = new Object();
task.task = o.innerText;
task.progressid = 2;
task.progress = ProgressEnum[task.progressid];
if (o.id == "newEditNode") {
o.removeAttribute("id");
task.year = nowDate.getFullYear();
task.month = nowDate.getMonth() + 1;
task.day = nowDate.getDate(); // open a database transaction
DB.transaction(function(tx) {
// insert into table(task,progress,year,month,day)
tx.executeSql('INSERT INTO ' + TableName + ' VALUES(?,?,?,?,?,?,0)', [task.task, task.progress, task.progressid, task.year, task.month, task.day],
// success:show success log in console
function(tx, rs) {
queryData(o.parentElement.id);
console.log("save data successfully!");
},
// fail:show error log in console
function(tx, error) {
console.log(error.source + "::" + error.message);
});
});
} else {
DB.transaction(function(tx) {
// update
tx.executeSql('UPDATE ' + TableName + ' SET task=? WHERE rowid=?', [task.task, o.id],
// success:show success log in console
function(tx, rs) {
queryData(o.parentElement.id);
console.log("update data successfully!");
},
// fail:show error log in console
function(tx, error) {
console.log(error.source + "::" + error.message);
});
});
}
} // query data
function queryData(parentId) {
document.getElementById(parentId).innerHTML = "";
DB.transaction(function(tx) {
tx.executeSql('SELECT rowid,* FROM ' + TableName + ' WHERE enabled=0 ORDER BY progressid ASC, rowid DESC', [], function(tx, rs) {
for (var i = 0; i < rs.rows.length; i++) {
createNode(rs.rows.item(i), parentId); //create node to show data
}
});
});
createEditNode(parentId); // create new edit node
} //change current date
function changeDate(cid, m) {
nowDate = new Date(document.getElementById(cid).innerText);
if (m == "+") {
nowDate.setDate(nowDate.getDate() + 1);
} else {
nowDate.setDate(nowDate.getDate() - 1);
}
document.getElementById("currentDate").innerText = nowDate.getFullYear() + "." + (nowDate.getMonth() + 1) + "." + nowDate.getDate();
TableName = "doList" + nowDate.getFullYear() + (nowDate.getMonth() + 1) + nowDate.getDate();
DB.transaction(function(tx) {
//create data table
tx.executeSql('CREATE TABLE IF NOT EXISTS ' + TableName + '(task TEXT,progress varchar(300),progressid INTEGER,year INTEGER,month INTEGER,day INTEGER,enabled INTEGER)', []);
});
queryData("divcontent");
} function load() {
if (navigator.appCodeName != "Mozilla") { } else {
/* ---- start program --- */
// create database
nowDate = new Date();
ProgressEnum = ["Executing", "Reform", "Pending", "Finished", "Cancel"];
TableName = "doList" + nowDate.getFullYear() + (nowDate.getMonth() + 1) + nowDate.getDate();
document.getElementById("currentDate").innerText = nowDate.getFullYear() + "." + (nowDate.getMonth() + 1) + "." + nowDate.getDate();
DB = openDatabase("toDoList", '', 'To Do list DataBase', 102400);
DB.transaction(function(tx) {
//create data table
tx.executeSql('CREATE TABLE IF NOT EXISTS ' + TableName + '(task TEXT,progress varchar(300),progressid INTEGER,year INTEGER,month INTEGER,day INTEGER,enabled INTEGER)', []);
});
queryData("divcontent");
}
}
URL:http://dicolancy.github.io/DemoCode/html5/todolist_chrome.html
HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]的更多相关文章
- HTML5学习笔记(五)存储
HTML5 web 存储,一个比cookie更好的本地存储方式.数据以 键/值 对存在, web网页的数据只允许该网页访问使用.加的安全与快速.可以存储大量的数据,而不影响网站的性能. 客户端存储数据 ...
- HTML5学习总结-07 WebStorage 本地存储
一 Storage sessionStorage session临时回话,从页面打开到页面关闭的时间段 窗口的临时存储,页面关闭,本地存储消失 localStorage 永久存储(可以手动删除数据)S ...
- HTML5学习笔记----html5与传统html区别
一. HTML5语法的改变 该知识点所说变化指的是基于HTML4基础上所定义的改变,主要有如下: HTML5的文件扩展符(.html或.htm)与内容类型(text/html)保持不变. HTML5中 ...
- [html5] 学习笔记-html5音频视频
HTML5 最大的新特色之一就是支持音频和视频.在 HTML5 之前,我们必须使用插件如 Silverlight 或 Flash 来实现这些功能.在 HTML5 中,可以直接使用新标签< au ...
- [html5] 学习笔记-html5增强的页面元素
在 HTML5 中,不仅增加了很多表单中的元素,同时也增加和改良了可以应用在整个页面中的元素.重点包含 figure.figcaption.details.summary.mark.progress. ...
- (转)HTML5开发学习(3):本地存储之Web Sql Database
原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(3):本地存储之Web Sql Data ...
- (转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage
原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage ...
- html5学习笔记一
HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg” controls=”controls”> ...
- Html5学习笔记1 元素 标签 属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- .Net工程师面试笔试宝典
.Net工程师面试笔试宝典 传智播客.Net培训班内部资料 http://net.itcast.cn 这套面试笔试宝典是传智播客在多年的教学和学生就业指导过程中积累下来的宝贵资料,大部分来自于学员从面 ...
- Application可以被重用,从哪里看出来的?
一开始Context是静态的,并且创建时赋值,然后校验用户访问权限的时候,出现了问题, 调试看到,每次请求的url都一样,我就发现了每次Contetx都是一样的, 说明每次请求的Application ...
- SQL Server数据库的基础脚本编程
数据库脚本的基础编程 Go批量处理语句 用于同时处理多条语句 use指定数据库或表 use master --创建数据库 go use Student --创建表(Student)表示数据库 go 创 ...
- 获取outlook联系人寻呼字段
这称不上一篇技术文. 这边记录解决一个问题的过程和感受.这种感觉每个搞IT的人或多或少都感受过,是程序人独有的快乐之一.只是大部分人没有将这种感觉记录下来.但是当你记录时,这种感觉也早已消失. 需求: ...
- ES6——Class的继承
class 的继承和使用. 子类继承父类,使用extends关键字. 为父类知道那个静态方法,使用 static方法名字super: 在构造函数中,可以当一个函数来使用,相当于调用父类的构造函数. 在 ...
- 浅谈TCP通讯
基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息. 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定 ...
- Android : M 与 N 的权限管理
从 M 开始,permission 分为 Normal permission Runtime permission Normal permission 直接在 manifest 里声明就可以用了. a ...
- Stacking方法详解
集成学习方法主要分成三种:bagging,boosting 和 Stacking.这里主要介绍Stacking. stacking严格来说并不是一种算法,而是精美而又复杂的,对模型集成的一种策略. 首 ...
- leecode刷题(19)-- 最长公共前缀
leecode刷题(19)-- 最长公共前缀 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: [&quo ...
- BZOJ3210: 花神的浇花集会(坐标系变换)
题面 传送门 题解 坐标系变换把切比雪夫距离转化为曼哈顿距离 那么对于所有的\(x\)坐标中,肯定是中位数最优了,\(y\)坐标同理 然而有可能这个新的点不合法,也就是说不存在\((x+y,x-y)\ ...