分类“Javascript & DOM & AJAX”的存档

2011.0511
正则表达式字面量在ECMAScript5中的变化

《JavaScript语言精粹》的第72页有这样一段:

用正则表达式字面量创建的RegExp对象来共享同一个单实例:
function make_a_matcher(  ) {
    return /a/gi;
}

var x = make_a_matcher(  );
var y = make_a_matcher(  );

// 注意:x 和 y 是同一个对象!

x.lastIndex = 10;

document.writeln(y.lastIndex);    // 10

当你在浏览器中运行这段代码时,你会发现IE6-IE9、FireFox4、Chrome10、Safari5输出都是0,Firefox 3.6.16输出是10,原因可以在ECMAScript5规范第24页和第247页找到:

阅读全文 »

在23:48发表于Javascript & DOM & AJAX,有评论3
2010.0608
在服务端合并和压缩JavaScript和CSS文件

Web性能优化最佳实践中最重要的一条是减少HTTP请求,它也是YSlow中比重最大的一条规则。减少HTTP请求的方案主要有合并JavaScript和CSS文件、CSS Sprites图像映射(Image Map)使用Data URI来编码图片。CSS Sprites和图像映射现在已经随处可见了,但由于IE6和IE7不支持Data URI以及性能问题,这项技术尚未大量使用。目前大部分网页中的JavaScript和CSS文件数量和开发时一致,少量的网页会根据实际情况采取本地合并,这些合并中相当多的是有选择地手动完成,每次新的合并都需要重新在本地完成并上传到服务器,比较的随意和繁琐,同样文件的压缩也有类似的情况。而利用服务端的合并和压缩,我们就可以按照开发的逻辑尽可能让文件的颗粒度变小,利用网页中URL的规则来自动实现文件的合并和压缩,这会相当的灵活和高效。

阅读全文 »

标签:, , ,
在1:50发表于Apache & MySQL & PHP, Javascript & DOM & AJAX,有评论42
2009.1105
动态加载JavaScript的小实践

动态加载JavaScript文件和CSS资源为Web前端开发提供了巨大的灵活性,同时也实现了lazy load和按需加载,相比XMLHttpRequest而言其没有跨域的限制使其广泛应用。其基本原理是:在页面DOMReady后,利用JavaScript把指定文件路径的script和link元素插入到页面中,然后判断其加载状态再进行继续操作。

阅读全文 »

标签:, ,
在0:56发表于Javascript & DOM & AJAX,有评论26
2009.0906
CSS实现HTML元素透明的那些事

CSS3草案中定义了{opacity:<length> | inherit;}来声明元素的透明度,这已经得到了大多数现代浏览器的支持,而IE则很早通过特定的私有属性filter来实现的,所以HTML元素的透明效果已经无处不在了。首先看看A级浏览器所支持的用CSS实现元素透明的方案

阅读全文 »

标签:, , , , , , , ,
在23:44发表于HTML & CSS, Javascript & DOM & AJAX,有评论36
2009.0727
在HTML中获取正确的URL属性值

在HTML中,常见的URL有多种表示方式:

相对URL:
    example.php
    demo/example.php
    ./example.php
    ../../example.php
    /example.php
绝对URL:

http://dancewithnet.com/example.php

http://dancewithnet.com:80/example.php

https://dancewithnet.com/example.php

同时HTML中有大量的元素属性值为URL,一般利用JavaScript获取这些URL属性值有两种方法:

阅读全文 »

标签:, ,
在23:57发表于Javascript & DOM & AJAX,有评论13
2009.0402
《JavaScript语言精粹》

本书的作者Douglas Crockford是JavaScript开发社区最知名的权威,JavaScript的发明人Brendan Eich说他是“Yoda of lambda programming and JavaScript(lambda编程和JavaScript的精神领袖)”。他不仅仅给我们带来了JSON、JSLint、JSMin和ADSafe等等在JavaScript开发领域应用广泛且影响深远的作品,更重要的是给我们带来了受益终身的利用JavaScript进行高效开发的思想和风格,这就是本书的重要意义。

JavaScript曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,至少还说明它是一个不错的语言。Douglas Crockford在这本书中剥除JavaScript糟糕的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript子集,让你看到一门优雅的、轻量级的和非常富有表现力的语言。他从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9个方面来呈现这门语言真正的精华,这是语言最本质最优雅的部分,通过它们完全可以构建出高效的代码。他还通过附录列出了这门语言的糟粕和鸡肋部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效的保障我们写出优美高效的代码。

阅读全文 »

标签:, ,
在23:45发表于Javascript & DOM & AJAX,有评论27
2009.0329
JavaScript大牛:Douglas Crockford

Douglas Crockford是JavaScript开发社区最知名的权威,是JSONJSLintJSMinADSafe之父,是《JavaScript:The Good Parts》(英文版中文版)的作者。JavaScript的发明人Brendan Eich说他是“Yoda of lambda programming and JavaScript(lambda编程和JavaScript的精神领袖)”。他同时也服务于ECMA的JavaScript2.0技术委员会(TC39)。其个人站点和Blog是http://www.crockford.com/http://profiles.yahoo.com/blog/GSBHPXZFNRM2QRAP3PXNGFMFVU

Douglas Crockford现在是Yahoo的资深JavaScript架构师,曾在Atari公司(视频游戏工业的领袖)开发了办公自动化系统,同时也完成了对于游戏和音乐的研究;曾任Lucasfilm(卢卡斯)电影公司技术总监;在Paramount(派拉蒙)公司任职过新媒体执行主管;在电气社区,通常为人所知的是communities.com的创始人兼首席执行官;他还创办了State软件公司并作为该公司CTO,这也是他发现JSON时所在的地方。他同时也对Blissymbolics非常感兴趣,这是一种图形、象征性的语言,并且对永久减肥(Permanent Weight Loss)做过研究。

阅读全文 »

标签:, ,
在22:07发表于Javascript & DOM & AJAX, 互联网 & IT,有评论40
2008.1230
如何开始使用YUI Doc工具?

YUI Team实践出了一个高效易协作的前端代码开发流程:代码首先由Ant来组织管理和版本化、接着由JsLint来验证,然后由YUI Doc文档化、最后由YUI Compressor进行压缩发布。上个月初,YUI Team公布了这个新的JavaScript API文档生成工具YUI Doc,它本来专门为YUI提供API级别的文档的,现在它开源为人民服务了。

YUI Doc和JavaDoc、JSDoc和JsDoc Toolkit相似。YUI Doc是由注解驱动(comment-driven )的系统,它通过解析代码中描述结构的注解来生成文档。由于它纯粹的依赖于注解,所以并不像一些模拟系统一样需要有惯用语和代码模式。更详细的介绍可以看YUI Doc的官方文档和YUI blog上的《YUI Doc: A New Tool for Generating JavaScript API Documentation》(由于YUI blog咱们无法访问,比较好的解决方案就是在Google Reader中订阅它的Feed,直接输入 http://yuiblog.com即可。)

YUI Doc是基于Python开发,且依赖几个扩展库,加之其Getting Started写的也比较含糊,所以如何使用这个工具反而成为第一道门槛,尤其对于那些对Python不熟悉的同学来说。所以,下面的重点是介绍如何在Windows上使用YUI Doc: 阅读全文 »

标签:,
在0:42发表于Javascript & DOM & AJAX,有评论20
2008.1204
连续字符自动换行的解决方案

文本的排版依据语言的不同会有一些格式上的要求,比如简体中文中类似逗号、分号等标点符号不会出现在一行的开头,对于英文来讲就是一个完整单词不会在两行显示,浏览器会依据类似这样的原则来显示文本。但是由于网页有宽度限制的,连续的超长的字母、数字或标点符号超出其所在区域宽度的限制而导致影响页面视觉,如例1所示。这个问题在显示用户输入信息时尤为突出,这里就是要说如何解决这个问题。

CSS3草案中,对文本的处理新增了两个新属性word-wrapword-break来解决这个问题:

  1. {word-break:break-all;} :依照亚洲语言和非亚洲语言的文本规则,允许在字内换行,且允许非亚洲语言文本行的任意字内断开
  2. {word-wrap:break-word;}: 内容将在边界内换行,如需要则词内换行(word-break)也行发生

阅读全文 »

标签:, , , , , ,
在0:16发表于HTML & CSS, Javascript & DOM & AJAX,有评论18
2008.1027
JavaScript的陷阱

这本来是翻译Estelle Weyl的《15 JavaScript Gotchas》,里面介绍的都是在JavaScript编程实践中平时容易出错或需要注意的地方,并提供避开这些陷阱的方法,总体上讲,就是在认清事物本质的基础样要坚持好的编程习惯,其实这就是Douglas Crockford很久以前提出的JavaScript风格要素问题了,有些内容直接是相同的,具体请看《Javascript风格要素(1)》《Javascript风格要素(2)》。在翻译的过程中,我又看到了贤安去年翻译的《JavaScript的9个陷阱及评点》,其内容又有些交叉在一起,所以我就在现有翻译的基础上做了一个简单的拼合,并依据自己的理解增加了一些注释和解释。 阅读全文 »

标签:, , , , , , , ,
在0:26发表于Javascript & DOM & AJAX,有评论18

回到页眉