摘要:
面向对象与基于对象几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;而实例则是类的一个具体实现。 我们还知道,面向对象编程有三个重要的概念 - 封装、继承和多态。但是在JavaScript的世界中,所有的这一切特性似乎都不存在。 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。 这里面就有一些有趣的特性,比如JavaScript中所有事物都是对象, 包括字符串、数组、日期、数字,甚至是函数,比如下面这个例子:?12345678910// 定义一个函数 - 阅读全文
摘要:
DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效;当然对JS的取值也会有影响。 DOCTYPE声明如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 阅读全文
摘要:
【2010.04.18 更新】更加严格地区分出了 IE 9,增强了 Opera 的区分能力,并将 Chrome 的判别特征换成了引擎特性 [via],这样你就能看出国内哪些浏览器是从 Chrome 的内核改过来的了,大家可以动手试试。 :)【2010.04.17 更新】IE 9 在我看来改进非常大:有我所关心的对 Mutation Events 的支持,还有事件模型的 W3C 化等等……本文中我就不多冗述,有机会再另文探讨。由于在项目中大量使用特征判断,IE 9 在这方面最显著的变化是:之前那则“最短的 IE 判断法”已经失效,一起被修复的还有一直伴随 IE 的数组 Bug:非空数组字面量的最 阅读全文
摘要:
该错误只在IE中出现,出现该提示的原因主要有两种:1. 重定义了系统的触发事件名称作为自定义函数名如: onclick / onsubmit … 都是系统保留的事件名称,不允许作为重定义函数名称。2. 出现死循环,都提示:Stack overflow at line: 0 , 如:在图片对象定义了 onerror 事件的循环处理、<img src=”http://images.cnblogs.com/a.gif” onerror=”this.src=’/image/block.gif’” />这里并不是说 /images/a.gif 不存在, 可能是由于网络原因造成, 这时会执行 阅读全文
摘要:
自定义鼠标样式,格式:css:{cursor:url('绝对路径的图片(格式:cur,ico)'),-moz-zoom-out;}//FF下面css:{cursor:url('绝对路径'),auto;}//IE,FF,chrome浏览器都可以前面url是自定义鼠标格式,图像的绝对路径地址,后面的参数是css标准的cursor样式,(IE下面可以不需要)图标的格式根据不同的浏览器来分:IE支持cur,ani,ico这三种格式,FF支持bmp,gif,jpg,cur,ico这几种格式,不支持ani格式,也不支持gif动画格式,因此来说一般将图片存为cur或ico格式 阅读全文
摘要:
HMVC(Hierarchical-Model-View-Controller),也可以叫做 LayeredMVC。故名思意,就是按等级划分的 MVC 模式,简单的解释就是把MVC又细分成了多个子 MVC,每个模块就分成一个 MVC。使用 HMVC 的好处就是可以降低各个功能模块之间的耦合性,提高代码复用性,使得每个功能都可以独立出来,每个模块都有自己的 MVC 结构,这就有点像ActiveX 控件,每个控件都有自己的行为,控件之间互不影响。CodeIgniter 结构示意application |- controllers |- controllers1.php |- controllers 阅读全文
摘要:
JavaScript语言是一门优秀的脚本语言.其中包含脚本语言的灵活性外还拥有许多高级语言的特性.例如充许构建和实例化一个对象,垃圾回收机制(GC:Garbage Collecation).通常我们使用new创建对象,GC负责回收对象占用内存区域.因此了解GC,可以加深对JavaScript垃圾回收机制的理解。 阅读全文
摘要:
为了 脚本资源的高并行加载 提高页面加载速度.. 我们可能需要动态加载 script... 其中总是无法避免的 一个方法 是 使用 head.appendChild(script) ; 因为这种方式 可以直接跨域.但是有时候 动态加载脚本可能是要保证 他们的执行时序. 最理想的状态就是 所有的脚本 都可以 在 当前 http连接数 允许的前提下.最大化并行加载量的 同时 .. 可以选择 按时序执行或按加载完成顺序执行 即先到先执行.假设 我们有 3个 js 分别为 a.js b.js c.js 传统的方式 是这样的 :<script src="a.js">< 阅读全文
摘要:
Web开发的发展 在过去一些的时候,Web开发人员并没有太多的去关注内存泄露问题。那时的页面间联系大都比较简单,并主要使用不同的连接地址在同一个站点中导航,这样的设计方式是非常有利于浏览器释放资源的。即使Web页面运行中真的出现了资源泄漏,那它的影响也是非常有限而且常常是不会被人在意的。 今天人们对Web应用有了高更的要求。一个页面很可能数小时不会发生URL跳转,并同时通过Web服务动态的更新页面内容。复杂的事件关联设计、基于对象的JScript和DHTML技术的广泛采用,使得代码的能力达到了其承受的极限。在这样的情况和改变下,弄清楚内存泄露方式变得非常的急迫,特别是过去这些问题都被传统的页面 阅读全文
摘要:
一、什么是闭包? “官方”的解释是:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 相信很少有人能直接看懂这句话,因为他描述的太学术。我想用如何在Javascript中创建一个闭包来告诉你什么是闭包,因为跳过闭包的创建过程直接理解闭包的定义是非常困难的。看下面这段代码: function a(){ var i=0; function b(){ alert(++i); } return b; } var c = a(); c(); 这段代码有两个特点: 1、函数b嵌套在函数a内部; 2、函数a返回函数b。 这样在执行完v. 阅读全文