- 博客(83)
- 收藏
- 关注
转载 JavaScript作用域链其二:函数的生命周期
函数的的生命周期分为创建和激活阶段(调用时),让我们详细研究它。函数创建众所周知,在进入上下文时函数声明放到变量/活动(VO/AO)对象中。让我们看看在全局上下文中的变量和函数声明(这里变量对象是全局对象自身,我们还记得,是吧?)var x = 10; function foo() { var y = 20; alert(x + y);} foo(); // 30
2012-06-17 12:31:24
194
转载 JavaScript变量对象其四:关于变量
常,各类文章和JavaScript相关的书籍都声称:“不管是使用var关键字(在全局上下文)还是不使用var关键字(在任何地方),都可以声明一个变量”。请记住,这是错误的概念:任何时候,变量只能通过使用var关键字才能声明。上面的赋值语句:a = 10;这仅仅是给全局对象创建了一个新属性(但它不是变量)。“不是变量”并不是说它不能被改变,而是指它不符合ECMAScript
2012-06-17 12:30:37
326
转载 JavaScript探秘:eval()是“魔鬼”
如果你现在的代码中使用了eval(),记住该咒语“eval()是魔鬼”。此方法接受任意的字符串,并当作JavaScript代码来处理。当有问题的代码是事先知道的(不是运行时确定的),没有理由使用eval()。如果代码是在运行时动态生成,有一个更好的方式不使用eval而达到同样的目标。例如,用方括号表示法来访问动态属性会更好更简单:// 反面示例var property = "name";a
2012-06-17 12:24:58
889
转载 执行上下文其一:变量对象与活动对象
一个执行的上下文可以抽象的理解为object。每一个执行的上下文都有一系列的属性(我们称为上下文状态),他们用来追踪关联代码的执行进度。这个图示就是一个context的结构。上下文结构除了这3个所需要的属性(变量对象(variable object),this指针(this value),作用域链(scope chain) ),执行上下文根据具体实现还可以具有任意额外属性。接着,让我们
2012-06-17 12:22:41
829
转载 JavaScript探秘:构造函数 Constructor
除了创建对象,构造函数(constructor) 还做了另一件有用的事情—自动为创建的新对象设置了原型对象(prototype object) 。原型对象存放于 ConstructorFunction.prototype 属性中。例如,我们重写之前例子,使用构造函数创建对象“b”和“c”,那么对象”a”则扮演了“Foo.prototype”这个角色: // 构造函数function
2012-06-17 12:21:44
502
转载 JavaScript变量对象其三:执行上下文的两个阶段
现在我们终于到了本文的核心点了。执行上下文的代码被分成两个基本的阶段来处理:进入执行上下文执行代码变量对象的修改变化与这两个阶段紧密相关。注:这2个阶段的处理是一般行为,和上下文的类型无关(也就是说,在全局上下文和函数上下文中的表现是一样的)。进入执行上下文当进入执行上下文(代码执行之前)时,VO里已经包含了下列属性(前面已经说了):函数的所有形参(如果我们是在函数
2012-06-17 12:20:21
143
转载 JavaScript函数其二:函数表达式
另外一种可以取代函数声明的方式是函数表达式,解释如下:函数表达式函数表达式(缩写为FE)是这样一种函数:在源码中须出现在表达式的位置有可选的名称不会影响变量对象在代码执行阶段创建这种函数类型的主要特点在于它在源码中总是处在表达式的位置。最简单的一个例子就是一个赋值声明:var foo = function () { ...};该例演示是让一个匿名函数表达式赋值给
2012-06-17 12:18:31
355
转载 JavaScript变量对象其三:执行上下文的两个阶段
现在我们终于到了本文的核心点了。执行上下文的代码被分成两个基本的阶段来处理:进入执行上下文执行代码变量对象的修改变化与这两个阶段紧密相关。注:这2个阶段的处理是一般行为,和上下文的类型无关(也就是说,在全局上下文和函数上下文中的表现是一样的)。进入执行上下文当进入执行上下文(代码执行之前)时,VO里已经包含了下列属性(前面已经说了):函数的所有形参(如果我们是在函数
2012-06-17 12:09:55
137
转载 JavaScript探秘:原型链 Prototype chain
型对象也是普通的对象,并且也有可能有自己的原型,如果一个原型对象的原型不为null的话,我们就称之为原型链(prototype chain)。A prototype chain is a finite chain of objects which is used to implemented inheritance and shared properties.原型链是一个由对象组成的有
2012-06-17 12:00:38
158
转载 JavaScript探秘:对象Object
ECMAScript是一门高度抽象的面向对象(object-oriented)语言,用以处理Objects对象。当然,也有基本类型,但是必要时,也需要转换成object对象来用。An object is a collection of properties and has a single prototype object. The prototype may be either an o
2012-06-17 11:56:21
128
转载 JavaScript变量对象其二:VO在不同的执行上下文中
不同执行上下文中的变量对象对于所有类型的执行上下文来说,变量对象的一些操作(如变量初始化)和行为都是共通的。从这个角度来看,把变量对象作为抽象的基本事物来理解更为容易。同样在函数上下文中也定义和变量对象相关的额外内容。view sourceprint?1抽象变量对象VO (变量初始化过程的一般行为)2
2012-06-17 11:45:41
175
转载 JavaScript变量对象其一:VO的声明
JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么?大多数ECMAScript程序员应该都知道变量与执行上下文有密切关系:var a = 10; // 全局上下文中的变量 (function () { var b = 20; // function上下文中的局部变量
2012-06-17 11:40:15
335
转载 我们应该如何去了解JavaScript引擎的工作原理
服务器君一共花费了351.853 ms进行了4次数据库查询,努力地为您提供了提供了这个页面。昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件内容,不过我相信其他人肯定也有同样的问题,所以,直接把问题原文抛出来):“读了你的几篇关于JS(变量对象、作用域、上下文、执行代码)的文章,我个人觉得有点抽象,难以深刻理解。我想请教下通过什么途径能够深入
2012-06-17 11:39:23
130
转载 JAVA领域的JIT
JIT Compiler(Just-in-time Compiler) 即时编译 最早的Java建置方案是由一套转译程式(interpreter),将每个Java指令都转译成对等的微处理器指令,并根据转译后的指令先后次序依序执行,由于一个Java指令可能被转译成十几或数十几个对等的微处理器指令,这种模式执行的速度相当缓慢。 针对这个问题,业界首先开发出JIT(just in
2012-06-17 11:35:10
106
转载 js里面call和apply
官方定义:调用一个对象的一个方法,以另一个对象替换当前对象。我对js里面call和apply的理解是回调父类的方法,并将父类实例化到当前对象的prototype上。其实对此一直都比较模糊,只能通过一些例子来加深一些理解。var color = "red";function sayColor(p) { alert(p + this.color);};sayColor();//
2012-06-17 00:57:28
104
转载 javascript 杂谈之哪种写法你更喜欢?
<!--.c_head {background-color:gray; padding-left:5px; color:white; font-size:20px; font-weight:bold}.c_nb {border:1px dotted #999; margin:10px; padding:5px}.c_body td {border:1
2012-06-17 00:55:02
171
转载 ITeye论坛关于权限控制的讨论
在许多的实际应用中,不只是要求用户简单地进行注册登录,还要求不同类别的用户对资源有不同的操作权限。目前,权限管理系统也是重复开发率最高的模块之一。ITeye论坛中关于权限控制的帖子非常之精彩,现将其精华内容摘录于下。 目 录 [ - ]楼主关于权限控制的问题RBAC(基于角色的访问控制)扫盲贴george_space的“权限控制”的部分数据模型sdnasky和george_
2012-06-17 00:51:46
707
转载 urlencode和decode
字符的编码和解码在有中文和特殊符号的情况下,常常是一个头疼的问题。url的encode和decode是解决这个问题的一个分支,通过简单的算法将特殊字符编码,其大致算法如下:The alphanumeric characters “a” through “z”, “A” through “Z” and “0″ through “9″ remain the same.The special c
2012-06-17 00:50:11
159
转载 Servlet 工作原理解析
从 Servlet 容器说起要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力。虽然它们是彼此依存的,但是又相互独立发展,这一切都是为了适应工业化生产的结果。从技术角度来说是为了解耦,通过标准化接口来相互协作。既然接口是连接 Servlet 与 Servlet 容器的关键,那
2012-06-17 00:43:21
191
转载 javascript事件处理机制——容易被我们遗忘的细节问题
最近在细读mootools core源代码中,在阅读到包装Event的时候,才发现,以前没对js事件处理处理机制深入的研究.遂,再次翻开尘封已久的java犀牛书,仔细的阅读了一把. 我们在书写js程序的时候,在很大程度上,都是写客户端交互程序,所以大部分都可以事件有关.但是遗憾的是,这些事件处理程序的细节非常复杂.并且由于浏览器的不同,目前有四种不同的事件处理机制:原始事件模型:
2012-06-16 22:07:28
142
转载 Java的事件处理机制?
JAVA中当事件发生时,他不会进行广播,而是仅仅向关心此事件的对象发送消息。那么他怎么知道谁“关心”此事件呢。这就要求关心此事件的对象,先行向事件的发出方进行注册,表示我关心此事件,当事件发生时请通知我。【简单来说】:就是事件的“处理方”向事件的“发出方”先行注册,当事件发生时,事件的“发生方”负责通知事件的“处理方”。譬如我编写一个窗口,用到了JFrame,我想实现一个功能,当按下Q
2012-06-16 22:03:50
123
转载 java 事件机制
java中的事件机制的参与者有3种角色:1.event object:就是事件产生时具体的“事件”,用于listener的相应的方法之中,作为参数,一般存在与listerner的方法之中2.event source:具体的接受事件的实体,比如说,你点击一个button,那么button就是event source,这样你必须使button对某些事件进行相应,你就需要注册特定的listene
2012-06-16 21:58:40
102
JAVA中当事件发生时,他不会进行广播,而是仅仅向关心此事件的对象发送消息。那么他怎么知道谁“关心”此事件呢。这就要求关心此事件的对象,先行向事件的发出方进行注册,表示我关心此事件,当事件发生时请通知我。【简单来说】:就是事件的“处理方”向事件的“发出方”先行注册,当事件发生时,事件的“发生方”负责通知事件的“处理方”。譬如我编写一个窗口,用到了JFrame,我想实现一个功能,当按下Q键时,窗口关
2012-06-16 21:56:37
56
转载 PB中所有事件的列表清单
PowerBuilder的事件 熟悉Windows编程的人员都知道,Windows的API为程序员提供了大量的消息,约有200多个。在PowerBuilder中,系统将每个Windows消息作为事件传递给程序员处理,并且为大多数普通的事件提供了缺省处理。 PowerBuilder在语句描绘器中为每一个标准的控件设定了一些常用事件,一般的编程人员基于这些事件就基本可以完成常
2012-06-16 21:36:25
269
转载 PB常用技巧
2010-08-02 09:56453人阅读评论(0)收藏举报1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Protect 属性设置为:If( IsRowNew(), 0, 1) )在 PowerScript 中可以动态修改 P
2012-06-16 21:32:25
203
转载 数据窗口
数据窗口是一个很重要的组成部分,它前连接用户窗口,后连接数据库,它就像一座桥梁,连接着河流的两岸的数据与用户界面。数据窗口把数据从数据库提到用户窗口中,使用户能够观看、使用和更新数据库。PowerBuilder提供给开发人员快速建立应用程序的强有力的工具,也是PowerBuilder与其它面向对象的数据库应用前端开发工具的最主要区别。它以自动化的用户/数据库接口为开发人员最大限度地节省了时间和
2012-06-16 21:31:18
538
转载 PB String ( data, { format } )
函数作用:该函数有两种用法,一种是进行类型转换,见语法格式二;另一种是进行类型转换的同时还进行数据格式的转换,见语法格式一。重点是格式一的学习和理解。函数语法: 格式一:String ( data, { format } ) 格式二:String ( Blob ) data:要进行类型和格式转换的数据;可以是date、DateTime、数字类型、time或者string类型。
2012-06-16 21:30:27
135
转载 Tomcat 系统架构与设计模式,第 1 部分: 工作原理
本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。Tomcat 总体结构Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的“七寸”。下面是 Tomcat 的总体结构图:图 1.Tomcat 的总体结构从
2012-06-16 21:27:36
339
转载 tomcat的session管理哦
Session对象的创建一般是源于这样的一条语句:Session session = request.getSession(false);或者Session session = request.getSession();如果不在乎服务器压力可能多那么一点点的话。在Tomcat的实现中,这个request是org.apache.catalina.connector.Request类的包装
2012-06-16 21:25:15
129
转载 tomcat6.0 配置jndi
注意事项:tomcat JDK 一定要和 应用程序的JDK 版本一致(本例中统一JDK1.6)说明:tomcat5.5与6.0的配置略有不同,即:tomcat的lib位置不同(其他完全一致),6.0位置是:D:\我的工具\apache-tomcat-6.0.10\lib下5.5位置是:D:\我的工具\apache-tomcat-5.5.17\common\lib
2012-06-16 21:12:21
119
转载 SQL Server 死锁处理和优化心得
前段时间提到的"SQL Server 2005 死锁解决探索",死锁严重,平均每天会发生一次死锁,在解决和处理SQL server2005死锁中查了很多资料和想了很多办法, 对为何出现死锁和怎样较少死锁有了进一步认识,在这里和大家一起分享: SQL Server 锁类型 在数据库中主要存在两种锁: S(共享锁)和X(排他锁) S(共享锁):在执行查询数据时,SQL
2012-06-15 23:07:35
112
转载 SQL Server游标的使用
游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。 正常面向集合的思维方式是: 而对于游标来说: 这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实
2012-06-15 23:04:33
99
转载 java中关于初始化的问题
首先一些被初始化对象的概念:类变量(类静态成员): 类被加载时产生;它的生存期是类的生存期; 自动初始化(类被加载)成员变量(类成员): 在使用new创建该类实例时产生;它的生存期与该类实例对象的生存期相同; 自动初始化(构造方法被调用)局部变量(类的方法中的变量): 该方法被调用时产生; 在该方法退出后结束; 必须显式初始化1 方法中的变量,不会被自动初始化。比如main方
2012-06-15 23:03:32
116
转载 初始ORACLE DUMP 函数
环境:VM6.5+Win2003 SP1+ Oracle 11.2.0.1(32-bit)Oracle 数据库字符集:ZHS16GBK 国家字符集AL16UTF16今天的任务:了解oracle DUMP函数目的:了解信息在由DUMP函数处理后是如何输出的。简单接受,开始我的学习路程。首先了解一个DUMP的语法(该图取自Oralce官方文档O
2012-06-15 23:02:52
166
转载 select查询原理
我并非专业DBA,但做为B/S架构的开发人员,总是离不开数据库,一般开发员只会应用SQL的四条经典语句:select ,insert,delete,update。但是我从来没有研究过它们的工作原理,这篇我想说一说select在数据库中的工作原理。B/S架构中最经典的话题无非于三层架构,可以大概分为数据层,业务逻辑层和表示层,而数据层的作用一般都是和数据库交互,例如查询记录。 我们经常
2012-06-15 23:02:09
112
转载 SQL Server中常用全局变量和函数 -学习sql server2005 step by step(五)
5.1SQL Server中常用全局变量select APP_NAME ( ) as w --当前会话的应用程序 select @@ERROR --返回最后执行的 Transact-SQL 语句的错误代码(integer) select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名
2012-06-15 23:00:47
1786
转载 SQL Server中常用全局变量和函数 -学习sql server2005 step by step(五)
5.1SQL Server中常用全局变量select APP_NAME ( ) as w --当前会话的应用程序 select @@ERROR --返回最后执行的 Transact-SQL 语句的错误代码(integer) select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名
2012-06-15 23:00:41
129
转载 Spring事务管理
事务管理概述“事务”是一个逻辑工作单元,它包括一系列的操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。事务包括4个基本特性,也就是我们常说的ACID,其中包括:1.Atomic(原子性,这里的“原子”即代表事务中的各个操作不可分割)事务中包含的操
2012-06-15 22:59:25
115
转载 会话跟踪
Web服务器跟踪客户状态通常有四种方法1.用cookie来传送用于跟踪客户状态的数据2.重与URL,使它包含用于跟踪客户状态的数据3.使用session会话机制4.在html中加入隐藏字段,它包含用于跟踪客户状态的数据1.cookie来跟踪cookie是客户端访问web服务器时,服务器在客户端硬盘上存放的信息(C:\Documents and
2012-06-15 22:57:44
119
转载 持久和会话COOKIE
关于COOKIE和SESSION的关系,一直没搞清楚。网上一搜COOKIE,普遍都有会话COOKIE和持久COOKIE的概念。rubyeye的博客里有这样的解释,我把部分贴过来。(http://rubyeye.iteye.com/blog/196117)引用当浏览器得到这个sessionid会将它放在自己的进程内存里,这里不同的浏览器会有所不同,IE进程间不能共享这个sessi
2012-06-15 22:56:56
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人