自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aty

虽有嘉肴,弗食,不知其旨也;虽有至道,弗学,不知其善也。是故学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。

  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 JavaScript修改CSS伪元素:after和:before的样式

CSS伪元素:before和:after可以实现很多有趣的功能,我们项目中使用的ionicframework框架的ionic.css文件中大量使用到了这2个伪元素。伪元素可以用来定义样式,但是和正常的dom元素不同,我们没有办法选中这些伪元素,也就不能像普通元素那样来修改它。我们没有办法直接选中伪元素来修改它的样式,只能是通过新增伪元素来覆盖之前伪元素的样式。

2015-06-29 20:01:19 39591

原创 CSS/JQuery元素选择器之&&和||,选择器的逻辑操作

使用CSS或JQuery选中元素的时候,很多时候我们需要对条件进行&&或者||操作。JQuery或者CSS中的||操作是很常用的,也很简单,就是通过逗号来分隔的。selector1,selector2,selectorN比如我们想选中div或者span,那么可以通过$("div,span")来选中满足条件的元素。

2015-06-27 17:34:55 6824

原创 JDK7中TransferQueue的使用以及TransferQueue与SynchronousQueue的差别

1.transfer(E e)若当前存在一个正在等待获取的消费者线程,即立刻将e移交之;否则将元素e插入到队列尾部,并且当前线程进入阻塞状态,直到有消费者线程取走该元素。2.ryTransfer(E e, long timeout, TimeUnit unit) 若当前存在一个正在等待获取的消费者线程,会立即传输给它; 否则将元素e插入到队列尾部,并且等待被消费者线程获取消费掉。若在指定的时间内元素e无法被消费者线程获取,则返回false,同时该元素从队列中移除。3.tryTransfer(E e)若当

2015-06-12 16:48:06 5212

原创 HTML5新特性展示利用history.replaceState()修改历史记录

在上一篇文章中介绍history.pushState()的时候,我们提到location.hash存在的3个问题。第一个问题:url会发生改变,这个很容易理解。现在我们看下第二个问题和第三个问题,即如何修改浏览器的历史记录,如何让历史记录存储更多状态相关的信息。状态相关的信息上一篇博客其实已经很容易看出来了,history.pushState()的第一个参数是javascript对象,我们当然可以在这个对象中存放任何我们想要的数据。本文我们主要看一下,如何利用histroy.replaceState修改浏览

2015-06-11 16:23:38 7753

原创 使用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 7418 1

原创 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能

我们知道JavaScript中很早就提供了window.history对象,利用history对象的forward()、go()、back()方法能够方便实现不同页面之间的前进、后退等这种导航功能。但是AJAX操作,是不能用浏览器的前进和后退按钮进行导航的,因为浏览器并不会将AJAX操作加入到历史记录中。但是借助location.hash,我们能够自己实现AJAX操作的前进和后退。我们需要知道以下2点:1.如果location.hash发生了变化,那么浏览器地址栏url会发生变化,而且浏览器会产生1个历史记

2015-06-11 14:24:47 17693 6

原创 hybrid app开发中用到的html5新特性localStorage、sessionStorage和websql database

比如你的项目中有保存草稿的功能,只是先将数据临时存储在本地,以后再提及到服务器。这就需要我们将数据持久地存储在本地,这就需要用到HTML5中的本地化存储解决方案。本文主要介绍下sessionStorage、localStorage和websql database这3种存储方案。localStorage只能存储简单格式数据就是key-value这种数据格式,而websql存储方案则提供了类似于关系数据库的表,能够以sql语句的形式操作数据库。

2015-06-10 16:56:53 2323

原创 java对象的内存布局(二):利用sun.misc.Unsafe获取类字段的偏移地址和读取字段的值

我们利用JDK中的sun.misc.Unsafe来计算下字段的偏移地址,一则验证下之前文章中的结论,再则跟jol输出结果对比下。通过上面的几段代码,我们可以成功获取类中各个字段的偏移地址,这跟jol工具的输出结果和我们的结论是一致的。有了字段的偏移地址,在加上对象的起始地,我们就能够通过Unsafe直接获取字段的值了。

2015-06-10 11:33:34 6560

原创 java对象的内存布局(一):计算java对象占用的内存空间以及java object layout工具的使用

最近在学习java对象内存布局方面的一些知识,主要是想知道一个java对象到底占用多少内存空间,以及java对象在内存中到底是什么样子的。c/c++中的sizeof运算符能够方便地告诉我们一个变量占用的内存空间,但是在java中却没有直接提供这种机制。如果想获取java对象占用的内存大小,可以利用java的Instrumentation机制。在网上搜索的过程中看到了java object layout这个小工具,能够打印出类的布局信息。Java对象的内存布局:对象头(Header)、实例数据(Instanc

2015-06-09 20:19:00 11546 2

原创 通过<frameset>和<iframe>看JavaScript中window对象parent、self、top的区别

可以看到a.html能够通过<frameset>或者<iframe>包含另一个b.html,而b.html中也可以用同样的方式嵌套c.html。这样就在不同的html之间形成了明显的层次(父子)关系。我们知道每一个html都对应1个js的window对象,既然html有层次关系,window对象也同样有层次关系,而这层次关系就是通过top和parent、self这3个属性来表现的。1.在任何html页面中(window.self == window),self和window都是获取当前窗口自身的window

2015-06-08 09:35:49 5517

eclipse最常用的快捷键

这是我个人从网上整理出来的快捷键,日常很常用的列在这里。而且比较清晰,欢迎大家下载。在eclipse提高开发效率

2012-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除