HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]

使用环境:Chrome 36.0...+

技术:HTML5

目的:习练HTML5

功能概述:记录管理每天工作内容,便签清单

HTML5+CSS3呈现UI,JavaScript操作数据库,SQLite存储数据

预览:

关键代码:

  1             // save data
  2             function dataStorage(o) {
  3
  4                 for (var i = 0; i < o.childNodes.length; i++) {
  5                     if (o.childNodes[i].nodeName == "P") {
  6                         o.removeChild(o.childNodes[i]);
  7                     }
  8                 }
  9
 10                 if (o.innerText.replace(/\s+/g, "").length == 0) {
 11                     return;
 12                 }
 13
 14                 var task = new Object();
 15                 task.task = o.innerText;
 16                 task.progressid = 2;
 17                 task.progress = ProgressEnum[task.progressid];
 18                 if (o.id == "newEditNode") {
 19                     o.removeAttribute("id");
 20                     task.year = nowDate.getFullYear();
 21                     task.month = nowDate.getMonth() + 1;
 22                     task.day = nowDate.getDate();
 23
 24                     // open a database transaction
 25                     DB.transaction(function(tx) {
 26                         // insert into table(task,progress,year,month,day)
 27                         tx.executeSql(‘INSERT INTO ‘ + TableName + ‘ VALUES(?,?,?,?,?,?,0)‘, [task.task, task.progress, task.progressid, task.year, task.month, task.day],
 28                         // success:show success log in console
 29                         function(tx, rs) {
 30                             queryData(o.parentElement.id);
 31                             console.log("save data successfully!");
 32                         },
 33                         // fail:show error log in console
 34                         function(tx, error) {
 35                             console.log(error.source + "::" + error.message);
 36                         });
 37                     });
 38                 } else {
 39                     DB.transaction(function(tx) {
 40                         // update
 41                         tx.executeSql(‘UPDATE ‘ + TableName + ‘ SET task=? WHERE rowid=?‘, [task.task, o.id],
 42                         // success:show success log in console
 43                         function(tx, rs) {
 44                             queryData(o.parentElement.id);
 45                             console.log("update data successfully!");
 46                         },
 47                         // fail:show error log in console
 48                         function(tx, error) {
 49                             console.log(error.source + "::" + error.message);
 50                         });
 51                     });
 52                 }
 53             }
 54
 55             // query data
 56             function queryData(parentId) {
 57                 document.getElementById(parentId).innerHTML = "";
 58                 DB.transaction(function(tx) {
 59                     tx.executeSql(‘SELECT rowid,* FROM ‘ + TableName + ‘ WHERE enabled=0 ORDER BY progressid ASC, rowid DESC‘, [], function(tx, rs) {
 60                         for (var i = 0; i < rs.rows.length; i++) {
 61                             createNode(rs.rows.item(i), parentId);  //create node to show data
 62                         }
 63                     });
 64                 });
 65                 createEditNode(parentId); // create new edit node
 66             }
 67
 68             //change current date
 69             function changeDate(cid, m) {
 70                 nowDate = new Date(document.getElementById(cid).innerText);
 71                 if (m == "+") {
 72                     nowDate.setDate(nowDate.getDate() + 1);
 73                 } else {
 74                     nowDate.setDate(nowDate.getDate() - 1);
 75                 }
 76                 document.getElementById("currentDate").innerText = nowDate.getFullYear() + "." + (nowDate.getMonth() + 1) + "." + nowDate.getDate();
 77                 TableName = "doList" + nowDate.getFullYear() + (nowDate.getMonth() + 1) + nowDate.getDate();
 78                 DB.transaction(function(tx) {
 79                     //create data table
 80                     tx.executeSql(‘CREATE TABLE IF NOT EXISTS ‘ + TableName + ‘(task TEXT,progress varchar(300),progressid INTEGER,year INTEGER,month INTEGER,day INTEGER,enabled INTEGER)‘, []);
 81                 });
 82                 queryData("divcontent");
 83             }
 84
 85
 86             function load() {
 87                 if (navigator.appCodeName != "Mozilla") {
 88
 89                 } else {
 90                     /* ---- start program --- */
 91                     // create database
 92                     nowDate = new Date();
 93                     ProgressEnum = ["Executing", "Reform", "Pending", "Finished", "Cancel"];
 94                     TableName = "doList" + nowDate.getFullYear() + (nowDate.getMonth() + 1) + nowDate.getDate();
 95                     document.getElementById("currentDate").innerText = nowDate.getFullYear() + "." + (nowDate.getMonth() + 1) + "." + nowDate.getDate();
 96                     DB = openDatabase("toDoList", ‘‘, ‘To Do list DataBase‘, 102400);
 97                     DB.transaction(function(tx) {
 98                         //create data table
 99                         tx.executeSql(‘CREATE TABLE IF NOT EXISTS ‘ + TableName + ‘(task TEXT,progress varchar(300),progressid INTEGER,year INTEGER,month INTEGER,day INTEGER,enabled INTEGER)‘, []);
100                     });
101                     queryData("divcontent");
102                 }
103             }
时间: 2024-10-10 01:04:26

HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]的相关文章

HTML5学习笔记----html5与传统html区别

一. HTML5语法的改变 该知识点所说变化指的是基于HTML4基础上所定义的改变,主要有如下: HTML5的文件扩展符(.html或.htm)与内容类型(text/html)保持不变. HTML5中,刻意不使用版本声明,一份文档将会适用于所有版本的HTML. 从HTML5开始,对于文件的字符编码推荐使用UTF-8. HTML5确保了与之前HTML版本的最大程度的兼容性. 为了保证兼容性,需从元素说起,在HTML5.中,元素的标记可以省略.其体来说,元素的标记分为“不允许写结束标记”.“可以省略

html5学习笔记(html5语义化)

Html5语义化:让机器可以读懂的内容,机器能读懂的就是标准了,就是新的这些个HTML5的标签了. 以前写html代码的时候呢 大多是DIV+CSS,这种div你可以拿他当头部当尾部当任何你需要表达含义的地方,正因为如此才让机器无法知道你这到底表达啥意思,于是语义化就有用了,给你一套标准,按这些规定的写,机器就能知道你表达的意思了. (语义网部分来源于:http://www.runoob.com/web/web-semantic.html) 而让机器读懂所需要的东西就是语义网.语义网技术,它包括

[html5] 学习笔记-html5增强的页面元素

在 HTML5 中,不仅增加了很多表单中的元素,同时也增加和改良了可以应用在整个页面中的元素.重点包含 figure.figcaption.details.summary.mark.progress.meter.ol.dl.cite .small元素. 1.figure,figcaption元素 figure元素用来表示网页上一块独立的内容,可以是图片.统计图.代码实例. figcaption元素从属figure元素,表示figure元素的标题:一个figure元素只能放置一个figcaptio

(转)HTML5开发学习(3):本地存储之Web Sql Database

原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(3):本地存储之Web Sql Database(附源码) Posted on 2012-03-25 14:03 祥叔 阅读(0) 评论(0)  编辑 收藏 接着上一篇,这节介绍Html5 本地存储中的一个很重要的概念--Web Sql Database ,正因为本人觉得这个很重要,所有独立出来重点介绍.即时你完全没听说过这个概念,望文生

(转)HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage

原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(2):本地存储之localStorage .sessionStorage.globalStorage   Posted on 2012-03-25 11:23 祥叔 阅读(2) 评论(0)  编辑 收藏 HTML5 提供了四种在客户端存储数据的新方法,即 localStorage .sessionStorage.globalStorage

html5学习笔记(3)--主题结构元素-1

html5学习笔记(3)--主题结构元素-1 Article元素 以下为对应代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <article> <header> <h1>极客学院</h

HTML5学习笔记(二)——表单1

表单一直是网页必不可少的一部分,一直以来,表单的作用被无限扩展,发展出了诸多新奇的用法,老版的HTML只支持很少的一部分常用表单,许多的新表单都需要借助CSS与JavaScript语言来进行构建,现在HTML5来了,她带来了新的表单,这些强大的表单项,可以省去一大块复杂的JavaScript代码,很值得去学习. 而且在新的表单里面,不再像以前每个表单都必须位于<form></form>之内,只要在<form></form>内定义一个id,然后在网页任何位置都

Html5学习笔记1 元素 标签 属性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML5学习笔记</title> </head> <body bgcolor="#90ee90"> 1.Html5的元素<br/><br/> 元素指的是从開始标签到结束标签的全部代码<

html5学习笔记2

css3选择器 1.通过元素的关键字,如p,div等 2.通过id属性 3.通过class属性引用 3.1通过class属性引用p标签,如:p.text{}//text样式只适用于p 4.通过任意键引用 例如:p[name]{}//仅引用带有name属性的p标签 p[name="my"]{}//仅引用带有name属性等于"my"的p标签 还可以使用正则表达式p[name^="my"]{} p[name$="my"]{} 5.通