摘要: 一、概述1.1 五层模型互联网的实现,分成好几层。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。如何分层有不同的模型,有的模型分七层,有的分四层。我觉得,把互联网分成五层,比较容易解释。如上图所示,最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做"应用层"(Application Layer),中间的三层(自下而上)分别是"链接层"(Link Layer)、"网络层&qu 阅读全文
posted @ 2012-07-20 13:54 乱ayhuznaiou 阅读(141) 评论(0) 推荐(0)
摘要: Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?一、 生成对象的原始模式假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性。 var Cat = { name : '', color : '' }现在 阅读全文
posted @ 2012-07-09 23:30 乱ayhuznaiou 阅读(127) 评论(0) 推荐(0)
摘要: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。Js代码 var n=999; function f1(){alert(n);} f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。Js代码 function f1(){var n=999;} alert(n); // error这里有一个地方需要注意,函数内部声明... 阅读全文
posted @ 2012-07-04 23:38 乱ayhuznaiou 阅读(119) 评论(0) 推荐(0)
摘要: 一、大括号的位置 绝大多数的编程语言,都用大括号({})表示区块(block)。起首的大括号的位置,有许多不同的写法。 最流行的有两种。一种是起首的大括号另起一行:block{...} 另一种是起首的大括号跟在关键字的后面:block {...} 一般来说,这两种写法都可以接受。但是,Javascript 要使用后一种,因为 Javascript 会自动添加句末的分号,导致一些难以察觉的错误。return{ key:value;}; 上面的代码的原意,是要返回一个对象,但实际上返回的是 undefined,因为 Javascript 自动在 return 语句后面添加了分号。... 阅读全文
posted @ 2012-06-29 21:11 乱ayhuznaiou 阅读(173) 评论(0) 推荐(0)
摘要: 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。MVC是 Model-Vi 阅读全文
posted @ 2012-06-06 23:25 乱ayhuznaiou 阅读(225) 评论(0) 推荐(0)
摘要: 【注:本文转自:http://ued.taobao.com/blog/2012/06/03/debug-with-chrome-dev-tool/】这篇文章是根据目前chrome稳定版(19.0.1084.52 m)写的, 因为 google 也在不断完善chromedeveloper tool, 所以chrome版本不同可能稍有差别. 一些快捷键也是 windows 上的, mac 下的应该大同小异.常规的断点相关的 breakpoint/conditional-breakpoint/call-stack/watch-expressions 等就不涉及了.1. BeautifyJavascr 阅读全文
posted @ 2012-06-04 19:10 乱ayhuznaiou 阅读(185) 评论(0) 推荐(0)
摘要: 首先从一次完整的的请求说起:(以打开本站为例)1,webbrower 发出request,2,然后解析www.cnblogs.com为ip,找到ip的服务器,3,服务器处理请求资源并返回请求的内容,4,browser接受请求内容过程,(返回内容是按顺序读取的)4.1遇到外联css,就会并发去读取css内容(),4.2遇到图片时,回去并发读取图片,目前浏览器的并发数为2,4.3遇到js时则会阻塞其他请求。4.4加载完css后,browse开始渲染页面,4.5直到加载完页面中的文本资源,这时dom的结构已经确定,会出发 document.ready方法4.6 browse继续加载 图片和js,完成 阅读全文
posted @ 2012-05-03 23:18 乱ayhuznaiou 阅读(171) 评论(0) 推荐(0)
摘要: 1.Blocked(阻塞时间):闭塞时间,包括任何预先处理时间(如高速缓存查找)和所花费的时间等待网络连接变得可用。Internet Explorer将创建的每个主机名并发网络连接(即最大www.microsoft.com)和高达请求队列中,直到网络连接可用。经常封锁的时间是在网页中嵌入的图像下载时间最重要的因素。2.DNS查找(DNS解析时间):DNS查找是需要的时间,以解决主机名(例如www.google.com成一个数字IP地址(如216.239.59.99))。3.Connect(连接时间):Connect是建立一个TCP连接到Web服务器(或代理)所需的时间。这时候,如果正在使用安全 阅读全文
posted @ 2012-03-30 08:45 乱ayhuznaiou 阅读(210) 评论(0) 推荐(0)
摘要: 什么是事件?事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水。当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小。通过使用 JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应。今天的事件在漫长的演变史,我们已经告别了内嵌式的事件处理方式(直接将事件处理器放在 HTML 元素之内来使用)。今天的事件,它已是DOM的重要组 阅读全文
posted @ 2012-03-28 00:00 乱ayhuznaiou 阅读(186) 评论(0) 推荐(0)
摘要: 假设这样一个场景:你走在路上,一辆卡车朝你飞驰而来,你将会做什么?回答傻站着不动的请允许我致以无上的同情。普通青年的答案应该是马上躲开,对吧?好,请先停一下,仔细想想,完整的动作流程是怎么样的?ok,重新整理一下:你看到了这辆车→做出它即将撞到你的判断→你感到了危险→你马上躲开了。觉得这个是标准答案请伸出右手放在自己的心口上,扪心自问一下真的是这样么?你真的是这样做的么?真实的情况应该是这样的:你看到了车→你感到了危险→你躲开了。所以究竟是什么救了你?A. 看到车的眼睛B. 躲开车的脚C. 做出指令的大脑答案是D. 你的本能,与生俱来的、历经千万年进化更加敏锐而不动声色的行为模式。(没错,这是 阅读全文
posted @ 2012-03-27 22:55 乱ayhuznaiou 阅读(221) 评论(0) 推荐(0)