WebSql的原理是浏览器集成了sqllite数据库,Js操作,浏览器协助完成,没有多复杂。
<!--
三个核心方法
openDatabase:这个方法使用现有数据库或创建新的数据库
transaction:这个方法允许我们根据情况控制事务提交或者回滚
executeSql:执行sql查询
应用:离线词典
-->
<script>
//检测浏览器是否支持websql
if(window.openDatabase){
//创建或者使用数据库
var conn=openDatabase('think-shop','1.0',1024*1024,function(){});
//控制事务控制提交或者回滚
conn.transaction(function(fx){
/*
//1.执行sql,创建表结构
fx.executeSql(
"create table member(id int,name varchar)",
[],
function(){
//成功自动执行
console.log('创建成功!');
},
function(){
//失败自动执行
console.log('创建失败!');
}
);
*/
/*
//2.执行sql,新增数据到表
fx.executeSql(
"insert into member(id,name) values(?,?)",
[1,'张三'],
function(){
//成功自动执行
console.log('新增成功!');
},
function(){
//失败自动执行
console.log('新增失败!');
}
);
*/
/*
//3.执行sql,更新数据
fx.executeSql(
"update member set name=? where id=?",
['李四',1],
function(){
//成功自动执行
console.log('修改成功!');
},
function(){
//失败自动执行
console.log('修改失败!');
}
);
*/
/*
//4.执行sql,查询数据
fx.executeSql(
"select * from member where id=?",
[1],
function(fx,result){
//成功自动执行
console.log('查询成功!数据如下:');
console.log(result);
},
function(){
//失败自动执行
console.log('查询失败!');
}
);
*/
//5.执行sql,删除数据
fx.executeSql(
"delete from member where id=?",
[1],
function(fx,result){
//成功自动执行
console.log('删除成功!数据如下:');
console.log(result);
},
function(){
//失败自动执行
console.log('删除失败!');
}
);
});
}
else{
console.log('浏览器不支持!');
}
</script> window.setInterval(method,time)方法本身会返回一个资源句柄,使用clearInterval(Intervalid)方法即可清除定时器<script> var num=0; //每隔1秒再控制台输...
捕捉模式从DOM最顶层一直到最后一层,冒泡正好相反,具体运行以下实例测试.<!DOCTYPE html> <html> <head> <title>捕捉和冒泡</title> <meta charset="...
通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit() 方法传输的数据格式相同...
维护老项目中客户提到一个页面中有6个表单以上,导致每次保存一个其他的数据全部丢失,自己比较懒没有全部更换为ajax.用户每次输入完成或者选择完成记录cookie,每次提交后加载页面完成初始化cookie即可。以下代码取自w3school比较完善,之前在其他博客使用的经常出现bug,这个比较推荐使用:...
工厂模式虽然解决了创建多个对象的问题,但是并没有解决识别对象从属的问题.因为都属于object.因此出现了构造函数//构造函数名称首字母大写是规范 function Box(name,age){ this.name=name; this.age=age; this.run=funct...
//构造函数 function Box(name,age){ this.name=name; this.age=age; this.run=function(){ return this.name+'--'+this.age; } } var&nbs...