
HTML5
文章平均质量分 86
aitangyong
成长最快、最好的方式就是交流和总结!
展开
-
HTML5规范之Web Worker入门
在web worker规范产生之前,dom渲染和javascript代码执行是在同一个浏览器线程中执行的。也就是说:渲染dom的时候不能执行javascript代码,执行javascript代码的时候,UI界面会暂停响应。如果javascript代码执行时间很长,那么UI就会无响应,这就是所谓的页面卡死。Web Workers是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些耗时的javascript代码交由web Worker运行而不冻结用户界面。也就是说web worker和U原创 2015-10-27 12:44:17 · 9056 阅读 · 0 评论 -
hybrid app开发中用到的html5新特性localStorage、sessionStorage和websql database
比如你的项目中有保存草稿的功能,只是先将数据临时存储在本地,以后再提及到服务器。这就需要我们将数据持久地存储在本地,这就需要用到HTML5中的本地化存储解决方案。本文主要介绍下sessionStorage、localStorage和websql database这3种存储方案。localStorage只能存储简单格式数据就是key-value这种数据格式,而websql存储方案则提供了类似于关系数据库的表,能够以sql语句的形式操作数据库。原创 2015-06-10 16:56:53 · 2371 阅读 · 0 评论 -
使用history.pushState()和popstate事件实现AJAX的前进、后退功能
上一篇文章中,我们使用location.hash来模拟ajax的前进后退功能。使用location.hash存在下面几个问题:1.使用location.hash会导致地址栏的url发生变化,用户体验不够友好。2.location.hash产生的历史记录无法修改,每次hash改变都会导致产生一个新的历史记录。3.location.hash只是1个字符串,不能存储很多状态相关的信息。为了解决这些问题,HTML5中引入了history.pushState()、history.replaceState()、原创 2015-06-11 15:18:28 · 7479 阅读 · 1 评论 -
HTML5新特性展示利用history.replaceState()修改历史记录
在上一篇文章中介绍history.pushState()的时候,我们提到location.hash存在的3个问题。第一个问题:url会发生改变,这个很容易理解。现在我们看下第二个问题和第三个问题,即如何修改浏览器的历史记录,如何让历史记录存储更多状态相关的信息。状态相关的信息上一篇博客其实已经很容易看出来了,history.pushState()的第一个参数是javascript对象,我们当然可以在这个对象中存放任何我们想要的数据。本文我们主要看一下,如何利用histroy.replaceState修改浏览原创 2015-06-11 16:23:38 · 7870 阅读 · 0 评论 -
HTML5数据存储方案data-*与jQuery数据存储方案$.data()的区别
至此:jQuery数据缓存和HTML5 data-*属性介绍完毕,简单总结下比较关键的几点:1.jQuery读取data-*会自动做数据类型转换,如果不想要这种转换只能使用attr()去获取原始的属性值。2.jQuery读取data-*属性是懒惰的、按需的,只有真正使用这些属性的时候,jQuery才会将其加载到内存。3.jQuery修改属性值,都是在内存中进行的,并不会修改 DOM。4.data-*会被jQuery绑定到HTMLElement对象上,而不是jQuery封装后的对象上。原创 2015-12-16 12:37:16 · 5040 阅读 · 0 评论 -
Tomcat7 Websocket入门贴
传统的J2EE程序,浏览器端并没有推送机制,如果浏览器想要实时获取服务端的最新信息,那么必须通过轮询的方式。很显然轮询方式既浪费http带宽,又难以保证实时性。手机端的消息推送很方便,很好用。比如百度提供的百度云推送方案,google的GCM推送,apple的apns推送,基于这些推送服务,我们可以很容易构建出手机端的实时应用。websocket的引入,就是为了让浏览器也能像手机一样,被动接受服务端的推送信息。原创 2015-12-16 17:07:23 · 2975 阅读 · 0 评论 -
maven构建spring4 WebSocket应用, 不使用Spring MVC
我们在没有引入Spring MVC的情况下,实现了Spring WebSocket编程,但是却比较麻烦体现在2个方面:1.我们必须记录所有的websocket客户端,然后将消息广播给所有客户端。2.必须手动创建WebSocketHandler和HandshakeInterceptor等对象,无法在spring.xml中配置。所以我们还是使用SpringMVC+Websocket吧,会给编程带来很大的便利。原创 2016-01-17 21:25:45 · 3969 阅读 · 0 评论 -
使用JSR365规范构建J2EE websocket服务端和客户端应用
JSR365是java制定的websocket编程规范,属于Java EE 7的一部分。websocket和socket一样,既有客户端编程,也有服务端编程,JSR365制定了websocket客户端和服务端编程常用的API。现在websocket编程结束了,同服务端编程一样,JSR365仅仅是一个规范。服务端websocket我们使用的是实现者Tomcat,现在我们需要挑选websocket client的实现者。在maven仓库搜索websocket,可以找到很多的实现者,比如jetty客户端实现。原创 2016-01-17 14:15:46 · 1473 阅读 · 0 评论 -
HTML5新特性:自定义数据属性data-*
一些常见的前端框架比如angularJS使用了很多自定义的标签和属性,比如ng-model,ng-repeat等。这种自定义属性的方式没有标准,使用也很随意,容易导致混乱和冲突。HTML5规范里增加了一个自定义data属性.自定义data属性的用法非常的简单, 就是你可以往HTML标签上添加任意以 "data-"开头的属性, 这些属性页面上是不显示的,它不会影响到你的页面布局和风格,但它却是可读可写的。原创 2015-12-15 16:07:53 · 6803 阅读 · 0 评论 -
使用<script>和HTML5<template>作为模板元素的差别:能否使用jQuery选中
前端模板技术不是什么新技术了,有很多知名的js模板引擎,如:HandlebarsJS、Mustache 、artTemplate、还有我最近在学习的ionic框架等。这些模板引擎一般都是使用<script>来承载模板内容。这些模板引擎使用<script>标签作为载体,将type修改成自己定义的类型。由于<script>的type不是"text/javascript",所以不会被浏览器当做脚本执行,也不会显示到页面上。但最重要的区别在于:script里面的内容被当做普通字符串,但是template被当做文档碎原创 2015-12-18 11:26:05 · 6841 阅读 · 1 评论