摘要: 理解 JavaScript 闭包原文:http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html要成为高级 JavaScript 程序员,就必须理解闭包。本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。原文链接:JavaScript Closures可打印版:JavaScript 闭包目录简介对象属性名解析值的赋予值的读取 阅读全文
posted @ 2012-05-08 16:30 SunShineTian 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 学习Javascript闭包(Closure)作者: 阮一峰日期: 2009年8月30日闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法... 阅读全文
posted @ 2012-05-08 16:28 SunShineTian 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 原文:http://www.quirksmode.org/js/this.htmlThe this keywordshow page contentsTopOwnerCopyingReferringThe differenceExamples - copyingExamples - referringCombinationLoading site navigation; please wait...See sections 5H and 7F of the book.This page has been translated into French, Russian, and Chinese. 阅读全文
posted @ 2012-05-08 16:24 SunShineTian 阅读(211) 评论(0) 推荐(0) 编辑
摘要: ASP.NET提供程序模型 在ASP.NET提供程序模型的背后有一个著名的设计模式——战略(strategy)模式。根据定义,战略模式指一种可以通过各种可互换的算法(比如Quicksort和Mergesort)实现的预期行为(比如“排序”)。然后,在保持公开的、可观察的行为和编程API不变的同时,每个应用程序选择最适合的算法。战略模式最突出的特征是,它为对象或整个子系统提供了一种向外提供自己内部构件的方法,使客户可以去掉一个给定特征的默认实现并插入自己的实现。ASP.NET中的许多服务正是这样的,包括成员资格、角色、状态管理、个性化和站点导航。ASP.NET提供程序模型是ASP.NET对战略模 阅读全文
posted @ 2012-05-07 21:46 SunShineTian 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 转自:http://space.itpub.net/16436858/viewspace-682716这篇主要来分析下索引的优缼点,以及如何正确使用索引。索引的优点:这个显而易见,正确的索引会大大提高数据查询,对结果进行排序、分组的操作效率。索引的缺点:优点显而易见,同样缺点也是显而易见:1:创建索引需要额外的磁盘空间,索引最大一般为表大小的1.2倍左右。2:在表数据修改时,例如增加,删除,更新,都需要维护索引表,这是需要系统开销的。3:不合理的索引设计非但不能利于系统,反而会使系统性能下降。例如我们在一个创建有非聚集索引的列上做范围查询,此列的索引不会起到任何的优化效果,反而由于数据的修改而 阅读全文
posted @ 2012-05-05 22:22 SunShineTian 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 聚集索引和非聚集索引的区别聚集索引和非聚集索引的区别: 汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。 如果 阅读全文
posted @ 2012-05-05 18:48 SunShineTian 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 浅谈如何将NoSQL引入现有架构系统对于NoSQL大家不算陌生,但是如何在我们现有的系统架构中该如何引入NoSQL是大家常见的问题。本文将明确引入的NoSQL数据库带给系统的作用,它能解决什么问题,以及可能带来的新的问题。经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好,但是却不知道如何正式用到自己的项目中。很大的原因就是思维固定在MySQL中了,他们问得最多的问题就是用了NoSQL,我如何做关系查询。那么接下来,我们看下怎么样在我们的系统中使用NoSQL。怎么样把NoSQL引入到我们的系统架构设计中,需要根据我们系统的业务场景来分析,什么样类型的数据适合存储在NoSQL数据库中,什么样类型 阅读全文
posted @ 2012-04-27 13:17 SunShineTian 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 查询语句的时候尽量避免全表扫描,使用全扫描,索引扫描!会引起全表扫描的几种SQL如下1、模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like;对于like ‘%...%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低;另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。 解决办法:首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,即like ‘…%’,是会使用索引的;左模糊like ‘%...’无法直接使用索引,但可以利用reverse + function index 的... 阅读全文
posted @ 2012-04-19 19:03 SunShineTian 阅读(775) 评论(0) 推荐(0) 编辑
摘要: ASP.NET MVC 3 已经正式发布了,现在估计许多人都在拼命学,我也不能例外,刚刚看到了一篇文章,介绍了三个非常有用的方法:RenderBody,RenderPage和RenderSection,现在自己再总结下。1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里有这样一条语句:@RenderBody()其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈 阅读全文
posted @ 2011-08-07 18:02 SunShineTian 阅读(414) 评论(0) 推荐(0) 编辑