H5 技术
1,HTML5预加载标签
<!-- 页面,可以使用绝对或者相对路径 -->
<link rel="prefetch" href="page2.html" />
<!-- 图片,也可以是其他类型的文件 -->
<link rel="prefetch" href="sprite.png" />
2,存储功能 webstorage
function
save(dataModel){
var
value = dataModel.serialize();
window.localStorage[
'DataModel'
] = value;
window.localStorage[
'DataCount'
] = dataModel.size();
console.log(dataModel.size() +
' datas are saved'
);
return
value;
}
function
restore(dataModel){
var
value = window.localStorage[
'DataModel'
];
if
(value){
dataModel.deserialize(value);
console.log(window.localStorage[
'DataCount'
] +
' datas are restored'
);
return
value;
}
return
''
;
}
function
clear(){
if
(window.localStorage[
'DataModel'
]){
console.log(window.localStorage[
'DataCount'
] +
' datas are cleared'
);
delete
window.localStorage[
'DataModel'
];
delete
window.localStorage[
'DataCount'
];
}
}
request = indexedDB.open(
"DataModel"
);
request.onupgradeneeded =
function
() {
db = request.result;
var
store = db.createObjectStore(
"meters"
, {keyPath:
"id"
});
store.createIndex(
"by_tag"
,
"tag"
, {unique:
true
});
store.createIndex(
"by_name"
,
"name"
);
};
request.onsuccess =
function
() {
db = request.result;
};
function
save(dataModel){
var
tx = db.transaction(
"meters"
,
"readwrite"
);
var
store = tx.objectStore(
"meters"
);
dataModel.each(
function
(data){
store.put({
id: data.getId(),
tag: data.getTag(),
name: data.getName(),
meterValue: data.a(
'meter.value'
),
meterAngle: data.a(
'meter.angle'
),
p3: data.p3(),
r3: data.r3(),
s3: data.s3()
});
});
tx.oncomplete =
function
() {
console.log(dataModel.size() +
' datas are saved'
);
};
return
dataModel.serialize();
}
function
restore(dataModel){
var
tx = db.transaction(
"meters"
,
"readonly"
);
var
store = tx.objectStore(
"meters"
);
var
req = store.openCursor();
var
nodes = [];
req.onsuccess =
function
() {
var
res = req.result;
if
(res){
var
value = res.value;
var
node = createNode();
node.setId(value.id);
node.setTag(value.tag);
node.setName(value.name);
node.a({
'meter.value'
: value.meterValue,
'meter.angle'
: value.meterAngle
});
node.p3(value.p3);
node.r3(value.r3);
node.s3(value.s3);
nodes.push(node);
res.
continue
();
}
else
{
if
(nodes.length){
dataModel.clear();
nodes.forEach(
function
(node){
dataModel.add(node);
});
console.log(dataModel.size() +
' datas are restored'
);
}
}
};
return
''
;
}
function
clear(){
var
tx = db.transaction(
"meters"
,
"readwrite"
);
var
store = tx.objectStore(
"meters"
);
var
req = store.openCursor();
var
count = 0;
req.onsuccess =
function
(event) {
var
res = event.target.result;
if
(res){
store.
delete
(res.value.id);
res.
continue
();
count++;
}
else
{
console.log(count +
' datas are cleared'
);
}
};
}
function
getCookieValue(name) {
if
(document.cookie.length > 0) {
var
start = document.cookie.indexOf(name +
"="
);
if
(start !== -1) {
start = start + name.length + 1;
var
end = document.cookie.indexOf(
";"
, start);
if
(end === -1){
end = document.cookie.length;
}
return
unescape(document.cookie.substring(start, end));
}
}
return
''
;
}
function
save(dataModel) {
var
value = dataModel.serialize();
document.cookie =
'DataModel='
+ escape(value);
document.cookie =
'DataCount='
+ dataModel.size();
console.log(dataModel.size() +
' datas are saved'
);
return
value;
}
function
restore(dataModel){
var
value = getCookieValue(
'DataModel'
);
if
(value){
dataModel.deserialize(value);
console.log(getCookieValue(
'DataCount'
) +
' datas are restored'
);
return
value;
}
return
''
;
}
function
clear() {
if
(getCookieValue(
'DataModel'
)){
console.log(getCookieValue(
'DataCount'
) +
' datas are cleared'
);
document.cookie =
"DataModel=; expires=Thu, 01 Jan 1970 00:00:00 UTC"
;
document.cookie =
"DataCount=; expires=Thu, 01 Jan 1970 00:00:00 UTC"
;
}
}s
<!DOCTYPE html>
<html manifest="m.appcache">
CACHE MANIFEST
# VERSION 0.3 # 直接缓存的文件
CACHE:
a.js
b.js
# 需要在线访问的文件
NETWORK:
*
# 替代方案
FALLBACK:
/x.css /test.css
四,datalist
<datalist id="words">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
<option value="Sogou">
<option value="Maxthon">
</datalist>
var
head = document.head || document.getElementsByTagName(
'head'
)[0];
5,calc http://osvaldas.info/imitating-calc-fallback-fixed-width-sidebar-in-responsive-layout
width:calc(33.3333% - (10px + 5px) * 2 - 15px )
div
{
width
: calc(
100%
-
2.5em
);
background-position
: calc(
50%
+
50px
);
margin
: calc(
1.25
rem -
5px
);
}
H5 技术的更多相关文章
- H5技术干货
H5技术干货 meta标签相关知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=d ...
- 浅谈H5技术
1.什么是H5:HTML5将成为HTML.XHTML以及HTML DOM的新标准.目前仍处于完善之中.然而,大部分现代浏览器已经具备了某些HTML5支持. 2.背景:HTML5 是 W3C 与 WH ...
- 那些过目不忘的H5页面
原文链接:http://isux.tencent.com/great-mobile-h5-pages.html 从引爆朋友圈的H5小游戏<围住神经猫>,到颠覆传统广告的大众点评H5专题页& ...
- 【干货】微信场景之H5页面制作免费工具大集合
营销代有手段出,各领风骚数百天.要说现在哪些营销方式最能传播,屡屡刷爆朋友圈的H5页面肯定就是首当其冲的,提到H5页面,就立马想到"围住神经猫",上线微信朋友圈3天的时间便创造了用 ...
- Atitit.现在的常用gui技术与gui技术趋势评价总结
Atitit.现在的常用gui技术与gui技术趋势评价总结 1. Gui俩种分类: native 和 dsl 和 script1 2. 最好的跨平台gui技术h51 2.1. 几大技术体系(java ...
- Native VS H5 VS React Native
现在软件行业已经跨入大前端时代,所以势必学一点前端的知识.本来移动端开发都是使用各自平台的语言,如iOS端使用OC,swift:Android使用java,但是随着H5的出现,导致移动端Native出 ...
- 其实H5制作就这样~
今天的H5技术越来越成熟了,H5制作变得越来越简单化,尤其是H5制作工具(http://wcd.im/?_ta=2787)领域,基本上已经形成一条比较完整的产业链,所以对当下的企业来说,如果仍未体验过 ...
- 才一年,H5的发展就成这样了......
关于H5的发展,分享几个最近看到的惊人数据和新闻: 1.截至2015,有80%的App将全部或部分基于HTML5.这意味着大部分App的内容都将是以网页的形式呈现,典型的例子包括微信.Facebook ...
- h5 做app时和原生交互的小常识。
距离上次随笔或许有半年了吧,最近在用hybrid模式开发移动app,所以就简单的说说用h5技术开发app时候,做原生交互的几个小常识: 一.拨打电话或者发送短信: <a href="t ...
随机推荐
- Linux内核态用户态相关知识
http://www.cnblogs.com/bakari/p/5520860.html http://www.cnblogs.com/Anker/p/3269106.html
- N-Queens II
Description: Follow up for N-Queens problem. Now, instead outputting board configurations, return th ...
- Android布局_网格布局GirdLayout
自Android4.0版本后新增的GirdLayout网格布局(API 14) <?xml version="1.0" encoding="utf-8"? ...
- Html表单的正则校验--将不符合指定正则表达式的字符串自动替换为空
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- tomcat集群配置
http://www.finereporthelp.com/help/24/1/3/3.html#a:4.1
- 多重比对multiple alignment
之前只接触过双序列比对,现在需要开始用多序列比对了. 基本概念:多序列比对 - 百科 常用的 multiple alignment 软件: Muscle ClustalW T-coffee 软件之间的 ...
- hdu 1421
时隔多日,又回来啃dp... 题意:有n件物品,搬k次,每搬一个消耗的疲劳值为两件物品重量之差的平方,求最小的疲劳消耗 状态转移方程:dp[i][j] = min((dp[i-2][j-1]+(s[i ...
- selenium+python笔记10
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 我们多添加一些测试场景,比如:删除邮件,查找邮件,发送邮件等等 &qu ...
- 简单的Hibernate入门简介
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...
- informix数据库下导出表结构
1)导出数据库中所有的表结构到文件db.sql $>dbschema -d your_database -t all db.sql 2)导出数据库中所有的存储过程到文件db.sql $&g ...