HTML api学习笔记
HTML api学习
拖放
<!DOCTYPE HTML> <html> <head> <script> function allowDrop(ev) { ev.preventDefault(); //阻止原生事件 } function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); //为拖放事件ev添加data } function drop(ev) { ev.preventDefault(); //阻止原生事件 var data = ev.dataTransfer.getData("text"); //从事件ev中读取data ev.target.appendChild(document.getElementById(data)); //利用data中的元素id构建标签完成拖放 } </script> </head> <body> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> //ondragover拖放结束 <img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69"> //draggable属性值为 true设置元素可拖放 //ondragstart拖放开始事件 </body> </html>
web本地存储
通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。
在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求。本地存储则更安全,并且可在不影响网站性能的前提下将大量数据存储于本地。
与 cookie 不同,存储限制要大得多(至少5MB),并且信息不会被传输到服务器。
<!DOCTYPE html> <html> <body> <div id="result"></div> <script> // Check browser support if (typeof(Storage) !== "undefined") { // Store localStorage.setItem("lastname", "Gates"); //添加键-值对 // Retrieve document.getElementById("result").innerHTML = localStorage.getItem("lastname"); //读取写入键-值对 } else { document.getElementById("result").innerHTML = "抱歉!您的浏览器不支持 Web Storage ..."; } </script> </body> </html>
localStorage 对象存储的是没有截止日期的数据。当浏览器被关闭时数据不会被删除,在下一天、周或年中,都是可用的。
sessionStorage 对象等同 localStorage 对象,用法也一致,不同之处在于只对一个 session 存储数据。如果用户关闭具体的浏览器标签页,数据也会被删除。
应用缓存
HTML5 引入了应用程序缓存(Application Cache),这意味着可对 web 应用进行缓存,并可在没有因特网连接时进行访问。
<html manifest="demo.appcache">使用应用缓存
demo.appcache内容:
CACHE MANIFEST /theme.css /logo.gif /main.js #CACHE MANIFEST部分规定浏览器会从网站的根目录下载这三个文件,然后,无论用户何时与因特网断开连接,这些资源依然可用 NETWORK: login.asp #NETWORK 部分规定文件 "login.php" 永远不会被缓存,且离线时是不可用的 FALLBACK: /html/ /offline.html #FALLBACK 部分规定如果无法建立因特网连接,则用 "offline.html" 替代 /html/ 目录中的所有文件
更新缓存:
一旦应用被缓存,它就会保持缓存直到发生下列情况:
1.用户清空浏览器缓存
2.manifest 文件被修改(参阅下面的提示)
提示:以 “#” 开头的是注释行,但也可满足其他用途。应用的缓存只会在其 manifest 文件改变时被更新。如果您编辑了一幅图像,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
3.由程序来更新应用缓存
Web Workers
当在 HTML 页面中执行脚本时,页面是不可响应的,直到脚本已完成。
Web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 运行在后台。
<!DOCTYPE html> <html> <body> <p>Count numbers: <output id="result"></output></p> <button onclick="startWorker()">Start Worker</button> <button onclick="stopWorker()">Stop Worker</button> <br><br> <script> var w; function startWorker() { if(typeof(Worker) !== "undefined") { //检查浏览器是否支持 if(typeof(w) == "undefined") { w = new Worker("demo_workers.js"); //创建工作对象 } w.onmessage = function(event) { document.getElementById("result").innerHTML = event.data; //获取工作数据 }; } else { document.getElementById("result").innerHTML = "Sorry! No Web Worker support."; } } function stopWorker() { w.terminate(); //工作结束 w = undefined; //使之可重用 } </script> </body> </html>
demo_workers.js内容:
var i=0; function timedCount() { i=i+1; postMessage(i); //传输数据,触发onmessage 事件 setTimeout("timedCount()",500); //延时函数 } timedCount();
Server-Sent
Server-Sent 事件指的是网页自动从服务器获得更新。
以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过 Server-Sent 事件,更新能够自动到达。
var source = new EventSource("demo_sse.php"); source.onmessage = function(event) { document.getElementById("result").innerHTML += event.data + "<br>"; };
事件:
- 点赞
- 收藏
- 分享
- 文章举报
- Yii学习笔记之六(HTML生成帮助类api 翻译)
- Html学习笔记(5)-Html标签(4)
- HTML+CSS+JavaScript+JQuery+JSP学习笔记
- Java web 学习笔记 Html CSS 小节
- 前端HTML学习笔记2017-04-16
- (W3C学习笔记)HTML 初级教程
- HTML&CSS基础学习笔记1-简单网页中有哪些标签?
- html、css学习笔记
- Swift和Objective-C的API交互—Swift学习笔记(二十)
- Html学习笔记---html5表单元素
- HTML 学习笔记
- 七海的html和css学习笔记(十三)
- angular学习笔记(二十三)-$http(1)-api
- 学习笔记(04):Vue2.x从入门到实战-v-text & v-html
- HTML入门学习笔记--多媒体标签(6)
- EJB3 Java 持久化API来标准化Java的持久化学习笔记
- Rexsee API介绍:Animations动画学习笔记及源码
- HTML+CSS学习笔记 (四)
- Dingo Api Transforme 学习笔记
- html css学习笔记-背景与文字