摘要:
《parctical common lisp》的作者曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。术士和暗影牧师很容易成为一个出色的辅助,而一个背着梅肯满地图飞的敌法就会略显尴尬。 换到程序中, 静态语言里可能需要花很多功夫来实现装饰者,而js由于能随时往对象上面扔方法,以至于装饰者模式在js里成了鸡肋。讲javascript设计模式的书还比较少. Pro java 阅读全文
摘要:
使用图片预加载可以提高用户体验,特别是要显示一张大图的时候尤其有用,这样一是可以减少请求次数,另一方面还可以加快图片的显示速度,实现的方法就是通过浏览器的缓存原理,如果返回的status code 是200说明客户端请求成功,如果status code是304说明文件已经在浏览器中缓存,服务器告诉客户端,原来缓存的文档还可以继续使用,不会再从服务器发送请求,当然要强制发送请求那也是可以的,一会再说。 首先来看一段实现图片预加载的代码:var imgLoad=function(url,callback){ var img=new Image(); img.src=url; if(img.c... 阅读全文
摘要:
浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。将讨论的浏览器今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。本文将基于一些开源浏览器的例子——Firefox、Chrome及Safari,Safari是部分开源的。根据W3C(World Wide Web Consortium万维网联盟)的浏览器统计数据,当前(2011年5月),Firefox、Safari及Chrome的市场占有率综合已接近60%。(原文为2009年10月,数据没有太大变化)因此 阅读全文
摘要:
javascript中的关键字call对与一些js新手来说有点难理解,一些权威的资料上解释的是,call的作用可以用来代替另一个对象调用一个方法,话说到此,javascript还有一个关键字apply能够和call一样实现相同的功能,只不过用obj1.function.apply(obj2,argments)时,argments需要是一个数组,而call只需要一个类数组,这里就不讨论类数组和数组的区别了。回来再聊call,话说如果你是一个面向对象开发者的话,你马上会怀疑这句话的真实性,但是在若类型语言javascript中则是完全可以的,但是如何理解“代替另一个对象调用一个方法呢?”,下面就允 阅读全文
摘要:
学习过javascript或者正学学习javascript中的人对里面的关键字并不陌生,甚至如影随至,理解并熟练试用this关键字能够让书写出来的代码精简而又漂亮,那么此文就与大家一起学习一下this关键字在javascript中的常见用法。 首先我不得不说this关键字在代码中的具体指定,取决于函数运行过程中的调用对象,并在此对象调用过程中保持不变。 全局函数中的"this",看下面代码:1 var value=3;2 function test(){3 this.value=5;4 }5 test();console.log检测一下发现全局value值发生改变。不难理解 阅读全文