自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (3)
  • 收藏
  • 关注

原创 IE中如果元素没有布局(hasLayout)设置透明度是没有效果的

可以设置zoom:

2014-10-07 22:51:44 658

原创 杂七杂八的兼容性测试(一)

1,前导空白IE6,IE7,IE8的innerHTML时不会保留前导空白var div = document.createElement('div');               div.innerHTML = "   ";               return div.firstChild.nodeType === 3; }2,tbodyIE6,IE

2014-10-06 11:07:29 1170

原创 addEventListener和attachEvent的区别·

addEventListener一个相同的事件处理函数bu'ke'yi

2014-09-25 23:07:47 875

原创 ECMAScript5新增数组API的一些细节

ECMAScript5新增的数组方法看似都比较简单其实还是有一些细节需要了解的首先这些方法都不会作用于原数组,其实对稀松数组的处理上.(1)这些方法在稀松数组缺少的元素上都不会执行回调函数(2)map的返回值包括稀松数组缺少的元素,而filter方法会过滤掉稀松数组的缺少元素,从而返回的都是一个紧凑的数组在一些不支持这些方法的游览器中我们是如何实现这些方法呢首先

2014-09-21 23:44:46 1307

原创 JSONP简单例子

jsonp的原理很简单,主要利用了HTML中所有有src的属性的标签可以跨域的特点,利用script的src进行get请求,后端输出一段js代码的字符串在script中便会执行。当然后端输出普通的json字符串是不行的,后台应当输出fn(json)样式的字符串 ,f var

2014-09-21 10:39:17 2358

原创 一个通用onReady函数的实现

修正一个重大bug,ready函数是不能在AMD中定义从而异步加载的,因为DOMContentLoaded监听的触发时机是在DOM和JS.CSS加载执行完毕后,但有一个例外就是JS如果是动态加载进来的,DOMContentLoaded不会等待这个异步加载的js,所以如果将绑定DOMContentLoaded事件的函数写在动态加载的js中,有一个可能就是Dom已经加载完毕但动态加载的js中的为DOMContentLoaded绑定监听的代码还没有执行,所以很有可能你为DOMContentLoaded绑定的监听不

2014-08-28 23:55:35 5360

原创 兼容性记录-class属性

getAttribute获得class属性时,IE6,IE7的传参是className,IE7+和现代游览器都是class所有游览器DOMElement均有的className属性,其在IE各版本下的均表现良好返回属性class值的字符串此外html5中DOMElement有个classList属性,它返回一个类型为DOMTokenList的对象,它其中有很多有用操作class的方法.

2014-08-26 17:26:05 1464

原创 JavaScript AMD规范简介(一)

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义".AMD定义了我们所用的模块都是是异步加载的,所以我们要将依赖模块的代码片段要放在一个回调函数中,当异步加载模块完毕后(也就是此模块已可用时)触发回调函数常用的AMD库有require.js、sea.js点击这里这里有一个我自己的示例级别的AMD实现AMD标准中定义了以下

2014-08-26 14:55:41 8256 1

原创 javascript取反再取反的作用

在javascript中按位取反再取反可以将一个浮点数的转化为整形,而且其效率要比parseInt高出将近一倍var start = new Date().getTime(); for (var i = 0; i < 10000000; i++) { var a = Math.random() * 5; ~~a; } console.info(new Date().getTime

2014-08-25 22:56:46 2689

原创 如何用javascript获取UUID

由于javascript是单线程的东西,所以我们放一个累加变量作为id也不会重复.但其实javascript本身提供了可以获得唯一id的东东.还记得setTimeout()方法会返回一个唯一id用来后来清除定时器,我们不妨就借用这个id吧.function getUUID() { var id = setTimeout('0'); clearTimeout(

2014-08-19 22:28:48 9128

原创 isXML

Document对象的createElement(tagName)方法在HTML文档中不区分大小写,在XML文档中区分大小写.所以可以写一下函数来判断文档是不是XML文件function isXML() {    document.createElement('p').tagName !== 'P';}

2014-08-18 23:04:22 897

原创 开坑!JavaScript AMD模块的设计与实现

开个坑,慢慢学习总结JavaScript的AMD规范先把自己写的一个简易实现放上来,然后慢慢从0开始讲解一下AMD,已经如何自己动手实现一个AMD/*AMD*/var DOC = window.document;var head = DOC.head || DOC.getElementsByTagName('head')[0];var basePath = getCurrentScr

2014-08-17 23:10:58 1381

原创 nodeValue的兼容问题

nodeValue获取Text或Comment元素的文本值.在IE6、IE7、IE8中游览器会自作聪明的去掉前面的空白字符text,而其他现代游览器则会保留空白 span 12345 678 var text = document.getElementsByTagName('p')[0].firstChild.nodeValue; alert(text.length)

2014-08-06 23:42:51 1268

原创 JQuery日记6.9 Promise/A之Callbacks

JQuery并没有简单的使用一个Array来存储回调函数,而是通过JQuery.Callbacks(options)返回一个self对象,此对象可以动态的add,remove和fire回调函数队列.此函数需要说明的是options参数,它是一个string,这个string由四个参数任意组合而成options:once:回调函数只执行一次memory:调用add时触发回调函数使用fir

2014-06-09 18:37:59 1165

原创 JQuery日记6.7 Javascript异步模型(二)

异步模型看起来很美,但其实它也是有天生缺陷的.看下面代码try { setTimeout( function(){ throw new Error( '你抓不到我的!' ); }, 100);} catch (e) { console.error(e);}如果你已经理解了上一篇博客,那你一定了解了这样的写法是捕

2014-06-06 20:59:58 966

原创 JQuery日记6.5 Javascript异步模型(一)

在了解JQuery的异步队列实现之前,有必要去了解javascript的异步模型.Javascript的异步其实并不算严格意义上的异步,js的异步是指让某段代码片段在将来再执行,而不是让执行流不必等待继续向下进行.在多线程的语言中最容易想到的异步方式就是在当前线程中,新创建一个线程让某段代码片段运行在新创建的线程中,从而使当前线程继续向下进行.而任何一本书关于js的书都会告诉我们js是

2014-06-05 17:32:31 1011

原创 JQuery日记 6.3 JQuery遍历模块

jQuery.extend({ // 返回elem延DOM树某个方向访问的所有节点,直到遇到until条件 dir: function( elem, dir, until ) { var matched = [], truncate = until !== undefined; while ( (elem = elem[ dir ]) && elem.nodeType !==

2014-06-03 10:23:46 1416

原创 JQuery日记 5.31 JQuery对象的生成

JQuery对象的生成的逻辑如下1 selector为任何可转换false的空值  返回空JQuery对象2 selector为字符串  2.1 selector为html字符串或有id属性的标签      2.2.1 selector为html字符时            转换html字符为DOM元素并放入当前JQuery的数组            当context

2014-05-31 13:18:37 2040 1

原创 JQuery日记_5.20 JQuery对Sizzle选择器的扩展

代码很简单直接上源码function winnow( elements, qualifier, not ) { //如果qualifier是函数 if ( jQuery.isFunction( qualifier ) ) { //not为true时,返回qualifier返回false的elements //not为false时,返回qualifier返回true的elements

2014-05-20 17:53:44 1015

原创 Canavs arcTo方法的理解

arcTo方法有四个参数参数1,2为第一个控制点的x,y坐标,参数2为第二个控制点的坐标,参数3为绘制圆弧的半径.起点和第一个控制点组成的延长线与第一个控制点和第二个控制点组成的延长线都是和圆弧相切的,这个圆弧也就是被夹在两条延长线中间.圆越大,两条延长线能形成的角度能夹住的圆弧就越小.下面写了一个简单的动画帮助理解Insert title herecanvas

2014-05-17 17:41:26 2831

原创 JQuery日记_5.14 Sizzle选择器(七)

上篇说道,tokenize方法会把selector分割成一个个selector逻辑单元(如div a是两个逻辑单元)并为之片段赋予对应类型的过滤函数。for ( type in Expr.filter ) { if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||

2014-05-16 18:49:55 1198 1

原创 JQuery日记_5.13 Sizzle选择器(六)选择器的效率

当选择表达式不符合快速匹配(id,tag,class)和原生QSA不可用或返回错误时,将调用select(selector, context, results, seed)方法,此方法迭代DOM选择、过滤元素,在DOM树非常大的时候为了保证效率,应该保证html设计的合理,尽量使用可快速匹配(id,tag,class)的表达式,其次是QSA支持的选择器,尽量不要使用jquery扩展的selec

2014-05-13 13:26:15 938

原创 JQuery日记 5.11 Sizzle选择器(五)

setDocument = Sizzle.setDocument = function( node ) { var hasCompare, //node为Element时返回node所属document //node为Document时返回node //node为空时返回window.document doc = node ? node.ownerDocument || node

2014-05-11 11:27:58 1938

原创 JS的继承和接口

此工具函数没实际意义,只是鉴于EXT的extend方法不太好理解,写了一个简化的extend方法,帮助理解./** * */E = {};E.extend = function(sub, sup) { //借用构造函数 sub.prototype = sup; //保留父类的构造函数,以便在子类构造函数中用调用,将父类变量绑定在this下 sub.prototype.supe

2014-05-09 20:50:35 2816

转载 unicode、GBK、UTF-8

unicode是一种“编码”,所谓编码就是一个编号(数字)到字符的一种映射关系,就仅仅是一种一对一的映射而已,可以理解成一个很大的对应表格GBK、UTF-8是一种“编码格式”,是用来序列化或存储1中提到的那个“编号(数字)”的一种“格式”;GBK和UTF-8都是用来序列化或存储unicode编码的数据的,但是分别是2种不同的格式; 他们俩除了格式不一样之外,他们所关心的unicode编码范围也不一

2014-05-09 11:46:22 885

原创 JQuery_2.1.0_日记 5.8 Sizzle选择器(四)

Sizzle( selector, context, results, seed )的关键步骤1,传入的context对应的context和当前document是否一致,不一致调用setDocument()重新设置document,用于frame的情况.2,如果context为空修正context为document3,selector如果不是字符串或者context不是Element或

2014-05-08 19:07:28 882

原创 JQuery_2.1.0_日记 5.5 Sizzle选择器(三)

function Sizzle( selector, context, results, seed ) {        var match, elem, m, nodeType,               // QSA vars              i, groups, old, nid, newContext, newSelector;

2014-05-05 12:53:21 1137

原创 JQuery_2.1.0_日记 5.4 Sizzle选择器(二)

(1)whitespace = "[\\x20\\t\\r\\n\\f]";匹配css3中空白符.\x20:空格;\t水平制表符(tab);\r\n回车换行\f换页符(2)characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+"匹配\后任意字符,字母或数字或-,ascii值非\00-\xa0范围内的字符(3)i

2014-05-04 20:25:10 1394

原创 JQuery_2.1.0_日记 5.4 Sizzle选择器(一) 正则中那些\\\\和\\

Sizzle中恐怖的正则.字面量的正则也许还好理解,那么由字符串编译而成的正则呢.\\和\\\\由字符'\\\\'编译而成的正则是/\\/,第一个\转义第两个\,所以其匹配一个\字符(这个\字符是代表字符本身)Test_Scriptvar s = '\\' ;alert(s); // '\'var rs = '\\\\' ;var m

2014-05-04 17:21:41 1043

原创 JQuery_2.1.0_日记 5.2

$.方法(1)$.merge(first, second)    合并两个数组或类数组,将第二个数组添加到第一个数组的末尾(2)$.grep(elems, callback, invert)    使用callback对elems进行过滤,如果invert设置为true.则返回保留callback返回值为false的元素数组,如果invert设置为false则返回c

2014-05-02 20:23:11 1169

原创 JQuery_2.1.0_日记 5.1

JQuery工具方法.(1)$.isNumeric(obj)    此方法判断传入的对象是否是一个数字或者可以转换为数字.    isNumeric: function( obj ) {        // parseFloat NaNs numeric-cast false positives (null|true|false|"")       // ...bu

2014-05-01 20:35:11 990

原创 JQuery_2.1.0_日记 4.29 $.extend

因为在JQuery一切皆JQuery,所以JQuery没有EXT那么恐怖的继承体系,比起EXT的Ext.extends(),$.extend()函数还是很好理解的,只是把一个对象的属性和方法添加到目标对象上.刚出生的JQuery是很弱小的,JQuery源码后面和我们自己扩展都是通过$.extend()函数.          Test_Html     body>     di

2014-04-29 17:33:41 1494

原创 JQuery日记 2014-04.29

JQuery原型对象(续)(4).each(callback,args)迭代JQuery对象上的元素并调用callback参数,如果某次迭代中callback返回false,停止迭代.args为callback的参数,args必须为数组.在callback中this引用的当前迭代的元素.Test_HTMLbody>div id= "div1">div1div >

2014-04-29 10:50:26 786

原创 JQuery日记 2014-4.28

为方便起见将JQuery.fn.init称之为JQuery对象JQuery原型对象方法:(1) toArray()    调用[].prototype.slice.call(jquery)将JQuery对象(类对象)转换为真正的数组     测试html    body>     div id= "div1">div1div >div id= "div2">div2

2014-04-28 18:24:06 908

原创 JQuery日记 2014-4.27

4.26 晴

2014-04-26 16:15:06 594

原创 jquery easyui tree实现延迟

这例子是官方的demo。可帮助我们理解tree延迟加载的原理,其中涉及到树的基本遍历算法。function myLoadFilter(data, parent){ var state = $.data(this, 'tree'); function setData(){ var serno = 1; var todo = [];

2014-01-15 11:36:23 4095

原创 IPUtils

获取所在内网的所有用户IP

2013-12-30 21:51:33 2132

原创 一种不好的删除XML空白节点和注释节点的方法

public static void deleteNoteAndBlank(Node node) {if (node.getNodeType() == TEXT_TYPE || node.getNodeType() == NOTE_TYPE) {return;}ArrayList deleteNodes = new ArrayList();for (int i = 0; i

2013-12-30 15:40:40 3075

原创 金额转换为中文大写格式

package org.sz.basic;import java.text.DecimalFormat;public class ConvertMoney { private final static String[] STR_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; private final

2013-12-22 22:48:45 1976

原创 java随手记(1)

1 简单加密、解密  位运算  String password = scanner.nextLine();     char[] array = password.toCharArray();     for (int i = 0; i length; i++) {          array[i] = ( char)(array[i] ^ 20000);

2013-12-20 09:21:32 670

true-license源码+中文注释

truelicense的源码+中文注释,很简单代码也不多,花半天就可以看完。

2012-08-29

深入JAVA虚拟机 PDF

多少年依然还是经典,了解虚拟机才能更好的了解JAVA体系,并发,安全,等等

2012-03-28

EXT 4类的新概念

看看吧,挺好的,EXT4对类系统进行了大量的重构,文档非常详细

2012-03-22

空空如也

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

TA关注的人

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