第 11 页|技术档 | IT圈子,ITBBB.COM

localStorage和userdata,兼容的本地持久化存储

2014/11 14 10:11

花了半天时间,在JSFunction中新加入了一个函数,localData,用于完成本地持久化存储。–北北

Demo示例请参见这里–JSFunction/LocalData

众所周知,localStorage是HTML5属性,对于低版本的IE浏览器支持并不是很好,而userdata是window+IE组合的存储解决方案,我们来整合这两者,以达到互补。

localStorage与cookie的区别,cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。

userData

语法:

XML

<Prefix: CustomTag ID=sID STYLE=”behavior:url(‘#default#userData’)” />

HTML

<ELEMENT STYLE=”behavior:url(‘#default#userData’)” ID=sID>

Script

object.style.behavior = “url(‘#default#userData’)”

object.addBehavior (“#default#userData”)

 

属性:

expires 设置或者获取 userData behavior 保存数据的失效日期。

XMLDocument 获取 XML 的引用。

 

方法:

getAttribute() 获取指定的属性值。

load(object) 从 userData 存储区载入存储的对象数据。

removeAttribute() 移除对象的指定属性。

save(object) 将对象数据存储到一个 userData 存储区。

setAttribute() 设置指定的属性值。

 

 

localStorage

方法:

localStorage.getItem(key):获取指定key本地存储的值

localStorage.setItem(key,value):将value存储到key字段

localStorage.removeItem(key):删除指定key本地存储的值

localStorage.clear():删除所有本地存储的值

 

Demo示例请参见这里–JSFunction/LocalData

Emmet语法

2014/11 05 12:11

看到Emmet的语法,我不得不说我惊呆了,发明这个的人真是碉堡了。

Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度。

让我们迫不及待的来学习如何使用Emmet语法来生成HTML和CSS代码吧!!!

安装Emmet插件

Emmet只是文本编辑器一个插件,要想让他发挥应用的功能,就得将其安装到你喜欢的文本编辑器中。到目前为止,很多流行的文本编辑器都支持Emmet插件,也就是说很多流行的文本编辑器都可以安装这款插件。

点击下面的链接,按照说明文档可以给对应的文本编辑器安装Emmet插件:

它是如何工作的?

在Web前端开发中,我们不得不面对一个残酷的现实。在写HTML代码时需要一定的时间,因为我们要花大把的时间写HTML标签,属性,引号等;同样在编写CSS时,我们要写很多的属性、属性值,大括号和分号等。当然,大多数的文本编辑器都或多或少带有代码自动提示功能,在开发之时,帮了很大的忙,但仍然需要人工输入很多代码。而Emmet插件,集成了很多缩写,大家在开发时只需要输入简单的缩写,按tab键或ctrl+E键就能扩展出所需的代码片段。

(更多…)

蚂蚁过桥问题解析

2014/10 27 16:10

最近看了一道面试题,引起了我的兴趣,发现这道题涉及到很多数学知识,于是恶补了一下高中数学,汗,花了一些时间编写了这个动画。

题目

有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。

思路

    • 将木杆看成1至27的坐标, 5只蚂蚁分别在3, 7, 11, 17, 23的位置
    • 创建DirectionEnum{Right: 0,Left: 1}方向枚举
    • 创建Ant类, 蚂蚁可以爬行(go), 掉头(shift), 以及记录是否已经爬出的标记.
  • 创建Control类, 给定蚂蚁的初始方向, Control类可以计算出在这种初始方向下蚂蚁全部爬出需要的时间.
  • 创建执行类, 它给出蚂蚁初始方向的所有组合, 并使用Control执行得到所有时间, 选择最大值和最小值.

蚂蚁的初始方向非左即右,可以用00001, 10000(枚举组合)表示。5只蚂蚁, 2的5次方=32个组合,所以用0-31之间的整数的二进制刚好可以表示蚂蚁的初始方向。比如24(11000)分别与1, 2, 4, 8, 16相与,结果不为0,则蚂蚁方向向右,可得第4、5只蚂蚁方向向右。

Demo

动画演示:http://www.itbbb.com/my/ant.html

蚂蚁过桥问题,itbbb.com

蚂蚁过桥问题,itbbb.com

Javascript代码

在Demo页查看源代码即可获得



无觅相关文章插件,快速提升流量