代码改变世界

文章分类 - JavaScript

jQuery对象与dom对象相互转换

2013-05-16 13:02 by Barret李靖, 531 阅读, 收藏, 编辑
摘要: 刚开始学习jQuery时可能一时会分不清楚哪些是jQuery对象、哪些是DOM对象。至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换。什么是jQuery对象?---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。比如:$("#test").html()意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法这段代码等同于用DOM实现代码:document.getElementById("id").innerH 阅读全文

实现Javascript异步编程的4种方法

2013-05-14 14:52 by Barret李靖, 706 阅读, 收藏, 编辑
摘要: 你可能知道,Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。为了解决这个问题,Javascript语言将任务的执行模式分成两种:同步(Syn 阅读全文

JS闭包的用途

2013-04-24 08:41 by Barret李靖, 890 阅读, 收藏, 编辑
摘要: 我们来看看闭包的用途。事实上,通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。1. 匿名自执行函数我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,比如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。除了每次使用变量都是用var关键字外,我们在实际情况下经常遇到这样一种情况,即有的函数只需要执行一次,其内部变量无需维护,比如UI的初始化,那么我们可以使用闭包:var datamodel = { ... 阅读全文

JavaScript之鼠标滚动事件

2013-04-09 20:36 by Barret李靖, 609 阅读, 收藏, 编辑
摘要: 最近正在做评论模块的image LazyLoad(图片资源延迟加载/按需加载),其中涉及到一些mouse scroll操作。老外的Mouse wheel programming in JavaScript一文,对我很有价值。——以下为翻译——本文有些信息可能已经过时,但是大部分知识点仍旧有用。Web应用日新月异,也越来越接近于桌面应用。功能上越来越强,比如drag&drop(拖拽),autocompletition(自动完成/自动补全)等等。在AJAX的配合下,这些应用都易于实现。本文要说的并不是AJAX技术,而是关于相对简单的用户输入手段——鼠标滚轮。目前已经很难找到不带滚轮的鼠标了 阅读全文

iframe跨域通信的通用解决方案

2013-03-29 11:10 by Barret李靖, 1800 阅读, 收藏, 编辑
摘要: 一、背景在这个Web页面越来越丰富的时代,页面通过iframe嵌入其他的页面也越来越常见。但由于浏览器同源策略的限制,不同域之间属性和操作是无法直接交互的,所以在这个时候,开发者多多少少需要一些方案来突破这些限制。跨域问题涉及的地方也很多,如文档之间的消息通信、ajax请求、Cookie等,本文讨论的是iframe和父页面的消息通信。二、现状目前网上也可以找到各种解决方案(少说都有10+个,有兴趣的话可以去看看),对于现代浏览器来说,原生的postMessage API一定是不二的选择,所以各种方案的不同点均在于IE 6、7中的处理(不用兼容IE6、7的同志可以去看其他文章了)。当然这么多方案 阅读全文

跨域资源共享的10种方式

2013-03-29 11:04 by Barret李靖, 3571 阅读, 收藏, 编辑
摘要: 在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同 源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?同源策略在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义。同源策略规定跨域之间的脚本是隔离的,一个域的脚本不能访问和操作另外一个域的绝大部分属性和方法。那么什么叫相同域,什么叫不同的域呢?当两个域具有相同的协议(如http), 相同的 阅读全文

JSON

2013-03-28 11:27 by Barret李靖, 493 阅读, 收藏, 编辑
摘要: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。JSON建构于两种结构:“名称/值”对的集合(A collection 阅读全文

汤姆大叔的JS系列文章,放在自己家里好找

2013-03-27 16:58 by Barret李靖, 753 阅读, 收藏, 编辑
摘要: 汤姆大叔文章列表深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点深入理解JavaScript系列(2):揭秘命名函数表达式深入理解JavaScript系列(3):全面解析Module模式深入理解JavaScript系列(4):立即调用的函数表达式深入理解JavaScript系列(5):强大的原型和原型链深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP深入理解JavaScript系列(8):S.O.L.I.D五大原则之里氏替换原则LSPS.O.L 阅读全文