« Posts by Sinnyn

JavaScript调试工具推荐

好的工具能帮助你事半功倍,至少你能很快的解决问题。或许你对于Visual Studio和Eclipse的调试器印象深刻,而对于JavaScript这样完全基于浏览器的调试无所适从(其实JavaScript的应用场景远远不止于浏览器),那么这篇简介或许能帮到你。

Internet Explorer

Microsoft Script Editor

这是Microsoft自己的一个调试器,要使用它以前确保你有Office。安装方法很简单,Word或别的Office组件中,工具->宏->Microsoft脚本编辑器,安装完以后记得安装web调试。然后在IE的高级选项中记得清除“禁用Internet Explorer调试”前的勾。 »Read More

动态载入脚本和CSS

一般来说,脚本和CSS都是在页面中用<script>和<link>来进行引入,也就是说,正如你现在所看到的这张网页一样,是静态的写在html中的。

而在一些应用场合,你的某一个页面在不同场合下所需的脚本和CSS是不同的,而如果你同时把这些脚本和CSS全部载入在这张页面之中,则会显得非常庞大,而且非常笨重。

一个CSS的示例便是换肤,比如JQuery UI的ThemeRoller,通过后期载入CSS来达到覆盖原有效果的作用(对于同样的CSS效果而言,都是遵循最近原则,所以后加载的文件会覆盖之前CSS的效果)。而JavaScript的示例便是通过页面事件触发来形成一个不同的效果。比如在你按下按钮A时,你需要显示某个UI组件A并加载a.js来激活这个组件的UI表现功能,而在按下按钮B的时候,则对B有类似的操作。如果在A和B的脚本都很大的情况下,在页面加载之初就全部载入就会显得页面初始载入时间过长,给用户的体验就会显得不那么好。所谓的按需索取,就是这个意思(虽然这样并不是一个很好的设计,因为如果频繁使用会让JS请求增加很多,倒不如对脚本进行压缩合并做一个包来得合算,具体情况还是得具体分析)。

在很多JS的框架中都会有对JavaScript和CSS的动态加载的设定。比如在JQuery中有$.getScript(),Dojo有dojo.require(),YUI有YUILoader(YAHOO.util.YUILoader)。

»Read More

JavaScript的原型链继承

JavaScript是一种弱类型语言,缺乏类这样的定义(正在制订的JavaScript 2.0规范中已经引入)。JavaScript最基础也最有意思的一个设定就是prototype,基本来说,对于这门语言而言,摆平prototype基本也就算进入高级了——当然,浏览器部分另算。

JavaScript本身并不是一种包含面向对象理念的语言,在你跟浏览器搏斗的过程中往往也是用不着面向对象的,但如果你想做JS lib的话,使用OO的概念会让好些东西都容易得多。

增强JavaScript的面向对象特质,构建类的机制,可以在JavaScript中使用原型链继承(prototype chain)来实现这样的一种机制。

»Read More