02 2012 档案
摘要:Java 利用poi把数据库中数据导入Excel效果:使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包核心代码:连接数据库:DBConnection.javapackage org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBConnection {private fin
阅读全文
摘要:概念: System.currentTimeMillis() :返回当前系统的毫秒数,由于取得的是毫秒数,所以在处理UNIX时间戳的时候需要转换成秒 也就是: long epoch = System.currentTimeMillis()/1000;方法: 1、获取当前系统的UNIX时间戳 System.out.println("获取系统毫秒数方法1:"+Long.toString(new Date().getTime())); System.out.println("获取系统毫秒数方法2:"+Long.toString(System.currentTi
阅读全文
摘要:这个在struts2的doc中已经有所说明,但是说得并不详细,而且他给的例子是有错误的,下面我将列出文件上传并限制类型的具体步骤struts2版本是2.1.6struts2是根据contentType来限制的,并不是文件的扩展名比如我想仅上传image/png,image/gif,image/jpeg这三种文件类型第一种方法是通过javascript校验来限制,这个比较简单,获取input的value然后截取扩展名进行判断即可第二种是根据struts2自带的fileupload拦截器中提供的allowedTypes来进行限制,步骤如下:1 配置fileupload拦截器struts2的defa
阅读全文
摘要:Javassist library is missing in classpath! Please add missed dependenc...今天练习使用struts2出现异常:struts2 version:2.2.1配置好以后出现这个问题:Javassist library is missing in classpath! Please add missed dependency!解决的办法是把struts2-blank-2.2.1.war示例工程中的web-inf/lib下的javassist-3.7.ga.jar拷贝出,加入你的工程中即可!
阅读全文
摘要:最近在学习SSH2,在Spring和hibernate集成成功后,与Struts2进行集成时,在一切工作完成后启动tomcat时,出现了一个严重警告,也可以说是错误,因为虽然tomcat是启动成功了,但相应的项目还是运行不了。现在把错误的详细信息粘贴出来,其中重点部分用红色凸显:信息: Deploying web application directory SSH22011-12-8 17:22:31 org.apache.catalina.core.ApplicationContext log信息: Initializing Spring root WebApplicationContext
阅读全文
摘要:在Struts2中,一般的内置类型都会在由系统自动进行转换.但是Date类型好像有时候行,有时候不行。比如我这次,本地运行正常,一上测试服务器就不行了。 因此要想保证系统一定要正确第对Date类型进行转换,就要写一个全局的类型转换类,进行Date与String之间的类型转换。 这个转换类是从网上看的:Java代码 packagecom.great.util; importjava.text.DateFormat; importjava.text.SimpleDateFormat; importjava.util.Date; importjava.util.Map; importcom.ope.
阅读全文
摘要:在项目中有这样的需求: 需要显示剩余的年月日。如下表:起始时间 截至期 有效期 2011-01-01 2013-12-31 3年2011-01-01 2011-01-01 1天代码如下:主要是参考 remainDateToString()方法/***处理平台的时间转换*@authoralf*2011-8-31上午09:21:39*/publicclassDateHandler{privatestaticCalendarcalS=Calendar.getInstance();privatestaticPatternp=Pattern.compile("\\d{4}-\\d{2}-\\d
阅读全文
摘要:Date a;Date b;假设现在你已经实例化了a和ba.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回trueb.before(a)返回一个boolean,如果b的时间在a之前(不包括等于)返回truea.equals(b)返回一个boolean,如果a的时间和b相等返回true
阅读全文
摘要:“PHP_SELF” 当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为 http://www.jb51.net/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果。__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名。 “SCRIPT_NAME” 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 包含当前文件的绝对路径和文件名(例如包含文件)。 主要的原因如像:$_SERVER['PHP_SELF
阅读全文
摘要:尽管 $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 非常相似,但在文件被 include 或 require 包含的时候,二者还是有细微区别。将上述测试代码拷贝至 E:\web\html\php\common\inc.php ,然后在刚才的 test.php 文件内包含 inc.php :<?phpinclude 'common/inc.php';?>这时候再访问 test.php 文件时,输出结果:SCRIPT_FILENAME 为:E:/web/html/php/test.php__FILE__ 为:E:\web\
阅读全文
摘要:get_magic_quotes_gpc()在PHP中get_magic_quotes_gpc()函数是内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。那么就先说一下magic_quotes_gpc选项:如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。在magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字
阅读全文
摘要:由于最近来自重构中的需要,所以深入的研究了JavaScript中 function(函数/方法)的动态执行。搜索了一下,发现在网上询问相关问题的人非常多,相应给出的解决方法也是很多的,但却没有深入研究的说明。本 人觉得深入的研究并解决function的动态执行问题还是非常有价值的。本文将从不同的应用情况入手,并由浅入深的给出解决方案与分析。动态执行从服务端返回的JavaScript代码不在本文的讨论范围内。场景1:动态执行无参数、无返回值function这是最简单,也是最常见的case。这种场景下,使用eval或者setTimeout都是可以的。如下示例代码:1functiontest() {
阅读全文
摘要:为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自Object.prototype的hasOwnProperty方法。注意:通过判断一个属性是否undefined是不够的。因为一个属性可能确实存在,只不过它的值被设置为undefined。hasOwnProperty是 JavaScript 中唯一一个处理属性但是不查找原型链的函数。// 修改Object.prototypeObject.prototype.bar = 1; var foo = {goo: undefined};foo.bar; // 1'bar' in foo; // truefoo.h
阅读全文
摘要:首先我们来看这个全局变量:__FILE__它表示文件的完整路径(当然包括文件名在内)也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径;然后:我们看这个函数:string dirname ( string path )它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,给你举个例子假如你的首页中用到了_FILE_这个变量:(假设你的网页所在目录为:http://localhost/web/index.php),那么:_FILE_的值为http://localhost/web/index.php(一个绝对路径)。而此时dir
阅读全文
摘要:这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改!(可能最新的一些php5的规范不够完整,今后有机会保持更新!)目录1 编写目的2 整体要求3 安全规范3.1 包含文件3.1.1 命名规则3.1.2 存放规则3.2 安全规则3.3 一些针对PHP的规则3.4 其它处理规则3.4.1 对输入参数值进行转义处理3.4.2 操作大HTML文本4 编码规范4.1 命名规范4.1.1 变量命名4.1.2 类4.1.3 方法或函数4.1.4 缩写词4.1.5 数据库表名4.1.6 数据库字段4.2 书
阅读全文
摘要:通用原则:1、语义化看到名字,就知道意思。2、通用前缀is表示是否、get表示读、set表示写。is后面优先跟形容词,而不是名词,比如是否多语言文字,应使用is_multilingual,而不是is_multilanguage。3、单数与复数参考js的函数命名规则:getElementById、getElementsByTagName、getElementsByName。例如:取我的多个好友的名字,应使用getFriendsName,而不是getFriendNames或者getFriendName取一个用户,是getUser取多个用户,是getUsers4、冗余后缀尽量不使用data、list
阅读全文
摘要:无规不成方圆,各位初学PHPer,在自编函数、类命名时请规范命名,为以后成为PHP高级程序员养成良好的习惯,打下坚硬的基石!以下内容请参考!类 类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML) class Raster;class ImageSprite 在为类(class)命名前首先要知道类的功能。如果通过类名的提供的线索,不能准确反映类的功能,那么,命名就是失败的。 超过三个词组成的混合名是容易造成系统各个实体间的混淆,尝试使用(CRC Session card)看看该命名..
阅读全文
摘要:什么是单一入口应用程序? 在解释什么是单一入口应用程序之前,我们先来看看传统的 web 应用程序。 news.php 显示新闻列表 news_edit.php 显示新闻编辑页面 这两个页面不但分别实现了两个功能,还成为了应用程序的两个入口。 那什么是入口啊? 打个比方,大家上 WC,都是男生进一个门,女生进一个门。这两个门就是 WC 的两个入口。 呵呵,上面的例子应该很好理解吧。那稍微变换一下,单一入口的概念就很容易理解了。 现在我们是进一个公共 WC,不管男女都是从最外面的入口进入,交了钱以后才分别进两个门。那最外面的入口就是这个 WC 的单一入口。 所以单一入口的应用程序实际上就是...
阅读全文
摘要:简单来讲,控制器的作用就是接受请求。它使用获取的方法,在这里是通过URI,载入一个功能模块来刷新或者提交一个表述层。控制器将使用$_GET自动全局变量来判断载入哪一个模块。 一个请求的例子,看起来像这样: http://example.com/index.php?module=login 这看起来很简单,但是在实现的过程中却不是。这里是几个控制器能识别的argument部分: module定义了使用哪一个模块,如users模块 class定义了使用哪一个功能类,如你想让用户login还是logout event定义了使用哪一个具体事件 这样一个更复杂的例子可以解释上面的各...
阅读全文
摘要:cakephp的请求示意图: 黑色 = 请求的元素, 灰色 = 可选的元素, 了;蓝色 = 回调方法Ricardo 点击了指向 http://www.example.com/cakes/buy 的链接, 然后他的浏览器对你的服务器发出了一个请求。路由(route)从URL中解释并提取出这次请求的参数: 控制器(controller), 动作(action)以及其他在这次请求中影响到业务逻辑的所有其他参数。使用路由后,请求的URL被映射到一个控制器的动作中(在特定的一个控制器的类的一个方法)。在这个例子,是CakeController类的buy()方法。在控制器的所有动作逻辑执行之前会调用bef
阅读全文
摘要:控制器(Controller)由一些类组成,根据预先定义的配置选项处理用户请求。一个典型的用户请求如下: http://www.myhost.com/mycompany/Main.php?do=salesReport. php.MVC 控制器由两部分组成:前端控制器和控制器。当请求到来时,前端控制器负责安装应用程序,控制器则根据phpmvc-config.xml的配置属性处理请求。 图6显示了前端控制器的主要任务。 用户请求被Main.php文件接收,这里,将设置一些初始化参数。前端控制器将执行以下任务: 定义应用程序路径:这将指定php.MVC类库以及Web应用程序的路径,如下: $a...
阅读全文
摘要:表现层的请求处理机制需要支持每个用户多个请求,我们可以以集中式或分散式的方式管理这些请求。 如果以分散的方式进行管理可能会导致如下的一些问题: 每个请求都有一个共同的操作,分散处理可能会导致代码的重复。可能会导致视图导航和视图内容的耦合。分散处..表现层的请求处理机制需要支持每个用户多个请求,我们可以以集中式或分散式的方式管理这些请求。如果以分散的方式进行管理可能会导致如下的一些问题:每个请求都有一个共同的操作,分散处理可能会导致代码的重复。可能会导致视图导航和视图内容的耦合。分散处理可能会带来更高的维护成本。如果我们采用集中的方式进行管理,则可以对安全认证、国际化等操作统一处理,同时也可以在
阅读全文
摘要:4年以前,当我还在一种叫ASP的东西上工作的时候,我整天为两个问题头疼不已:一是如何将分散的页面控制整合起来。解释型的服务器端脚本,每个页面都有 接收和处理请求的能力。这样以每个页面作为独立的单元来处理请求让人感觉粒度太小,分散又不爽。二是如何减少重复代码。脚本语言里处理重复代码的灵丹妙药 是include。每个页面里都可以include header,footer,session checker,屡试不爽。但有一次我很不幸,我要改一下header的名字…… 后来投靠了java,用了struts,豁然开朗,就像天空中飘下来几个大字:前端控制器。在这几个字的怀里缠绵已久,回望脚本语言林林总总,处
阅读全文
摘要:可扩展、高可用、负载均衡网站架构设计方案作者:田逸(sery@163.com) 本作品已刊登在《IT实验室周报》第6期第6版基本需求: 1、 高可用性:将停止服务时间降低到最低甚至是不间断服务2、 可扩展性:随着访问的增加,系统具备良好的伸缩能力3、 可视性:系统、服务的状态处于一个实时的监控之下4、 高性能高可靠性:经过优化的体系结构及合理的备份策略5、 安全性:结构上的安全及主机的安全策略基本思路1、对于访问频繁,用户量大的对象(bbs,blog)采用某种合理的方式负载到多个服务器上。把数据库独立出来,准备2套mysql数据库,以实现主从复制,即减轻负载,又提高了可靠性。更近一步,使用my
阅读全文
摘要:关键字WEB、可扩展、架构体系结构、开发、测试、数据、优化、负载均衡、监控、规划第1章 绪论WEB站点包含的是页面数据,而WEB应用程序则是由具备分离交付机制的数据组成的。 一个WEB应用至少包括硬件和软件。 好的应用体系结构的关键在于开始的规划。第2章 WEB应用程序体系结构系统架构分层,一如OSI的七层,各司其职,确保每层都能很好的完成自己的职责。 每个层的功能都只建立在同层或较低层所提供的功能之上。 层内通常都是自我完备,自制的。层与层的交互通过接口实现, 但是会产生一些问题,层与层之间的交互会增加额外的消耗,并且分层会给调试带来困难。作者认为WEB应用分为展现层(CSS),标记层(ht
阅读全文
摘要:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://sery.blog.51cto.com/10037/252992作者:田逸(sery@163.com)第一章 项目描述高考中国主要包含“高考志愿通”志愿填报系统的研究开发、产品运营;高考中国网站(www.gaokaochina.com)的开发、维护与运营。“高考志愿通”是经过数十位全国高考志愿填报指导专家、计算机网络专家、数学模型专家和数据统计专家历时多年精心打造。成为中国第一套高考志愿填报综合分析系统,信息最全最新的高考志愿填报综合分析系统,分析最科学、最精确的填报指导系统。
阅读全文
摘要:随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要 求了。此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架 构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力 的系统,也就是说,我们必须进行可扩展设计。可扩展设计是一个非常复杂的系统工程,所 涉及的各个方面非常的广泛,技术也较为复杂,可能还会带来很多其他方面的问题。但不管 我们如何设计,不管遇到哪些问题,有些原则我们还是必须确保的。本章就将可扩展设计过 程中需要确保的原则做一个简单的介绍。12.1 什么是可扩展性在讨论可扩展性之前,可能很多朋有会问:常听人说起某某
阅读全文
摘要:如果你了解了js面向对象,HTTP协议,那么就自己动手写一个AJAX框架就可以了。小技术,大家不要笑啊!源码:(注释就不写了,应该不难看懂的)var ajax = { _params: null, _callback: null, _xhr: null,_createXHR: function () { if (window.ActiveXObject) { _xhr = new ActiveXObject("Microsoft.XMLHTTP"); //IE } else if (window.XMLHttpRequest) { _xhr = new XMLHttpReq
阅读全文
摘要:维基百科(Wikipedia)是一个基于Wiki技术的全球性多语言百科全书协作计划,同时也是一部在网际网路上呈现的网路百科全书,其目标及宗旨是为全人类提供自由的百科全书──用他们所选择的语言来书写而成的,是一个动态的、可自由和的全球知识体。wikipedia在IT架构方面的经验,对于我们构建网站极有参考价值,因为wikipedia提供的这些信息非常详细和确凿。下面是我学习Wikipedia架构后的一些总结。1、Wikipedia的相关数据峰值每秒钟3万个HTTP 请求每秒钟 3Gbit 流量, 近乎375MB350 台 PC 服务器Wikipedia的数据来源来自Wikimedia archi
阅读全文
摘要:这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发、高容错的系统并能应用在实践上。今天在网上找架构相关的资料时,看到一个被和谐的视频网站YouTube的架构分析,看了以后觉得自己又向架构走近了一步,于是赶快拿出来与大家一起分享。YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。这点和PlentyOfFish类似,少数人维护庞大系统。是什么原因呢?放心绝对不是靠人品,也不是靠寂寞,下面就来看看YouTube的整体技术架构吧。平台123456<strong>ApachePythonLinux(SuSe)MySQLpsyco,一
阅读全文
摘要:这是PHP应用程序框架设计系列教程的第二部分。在第一部分,我们已经介绍框架的基础类结构,并展示了项目的大体。这一部分,我们将在程序中添加会话处理功能,并演示管理用户的各种方法。 会话 HTTP是一种无状态的协议,正因为如此,它没有包含任何与服务器连 接的相关信息。这就意味着,HTTP是孤立的,web服务器并不知道用户与你web程序相连接的任何信息,并且服务器会将每个页面请求视为一个新的连接。 Apache/PHP通过提供对会话的支持来避开这一限制。从概念上来说,会话是相当简单的。在一个用户第一次连接到服务器的时候,他被分配一个唯一的 ID。web服务器在一个文件中维护会话信息(译注:即把...
阅读全文
摘要:动机一个设计良好的应用程序应该充分考虑到开发和维护阶段需求的频繁变化,通常情况下,添加一个新的功能需要做出很多修改,我们应该使对已有代码的修改最小化,因为他们已经经过了测试。对现有代码做出修改将会以一种不可预料的方式影响它们的已有功能。开放-关闭原则 (以下简称开闭原则)开-闭原则:一个软件实体应该对扩展开发,对修改关闭。开闭原则是说我们应该努力设计不需要修改的模块。在扩展系统的行为时,我们只需要添加新的代码,而不需要修改已有的代码。一般可以通过添加新的子类和重写父类的方法来实现。满足开闭原则的模块符合下面两个标准:对扩展开放 ------- 模块的行为可以被扩展从而满足新的需求。对修改关闭
阅读全文
摘要:动机在本文中职责是指引起变化的原因。该原则表明,如果你有多个原因去改变一个类,那么应该把这些引起变化的原因分离开,把这个类分成多个类,每个类只 负责处理一种改变。当你做出某种改变时,只需要修改负责处理该改变的类。当我们去改变一个具有多个职责的类时可能会影响该类的其他功能。单一职责原则一个类应该只受一种变化的影响。单一职责原则简单而直观,但是在实际实现中可能是很困难的。实例假设我们需要一个对象保存email信息,在下面的例子中我们将使用IEMAIL接口。初看起来,一切都很好。但是仔细分析我们会发现我们的 IEMAIL接口和Email类具有两个职责(两种引起改变的原因)。一个是在一些类似pop3和
阅读全文
摘要:单一职责原则(Single Responsibility Principle SRP)There should never be more than one reason for a class to change.什么意思呢? 所谓单一职责原则就是一个类只负责一个职责,只有一个引起变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化会削弱或抑制这个类完成其他职责的能力,这个耦合会脆弱的设计。软件设计真正要做的许多内容,就是发现职责并把这些职责相互分离;如果能够想到多于一个动机去改变一个类,那么这个类就具有多于一个职责,就应该考虑类的分离。以调制解调器为例如下图:
阅读全文
摘要:1、HTML静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说
阅读全文
摘要:作为一个Web的前端攻城师,在制作页面效果时肯定有碰到下面这种现象:当一个HTML页面中含有较少的内容时,Web页面的“footer”部分 随着飘上来,处在页面的半腰中间,给视觉效果带来极大的影响,让你的页面看上去很不好看,特别是现在宽屏越来越多,这种现象更是常见。那么如何将Web页 面的“footer”部分永远固定在页面的底部呢?注意了这里所说的是页脚footer永远固定在页面的底部,而不是永远固定在显示器屏幕的底部,换句话说,就是当内容只有一点点时,Web页面显示在浏览器底部,当内容高度超过浏览器高度时,Web页面的footer部分在页面的底部,总而言之Web页面的footer部分永远在页
阅读全文
摘要:从本节起开始正式讲述mvc的开发,理论和代码一起上。下面图片是目录结构了解zend framework 的朋友肯定非常熟悉这样的目录结构其中application 文件夹 是应用层的核心代码Library文件夹 是mvc框架底层代码(咱们课程重点就是讲述这个文件夹里的文件)www是网站的根目录,明显看到 网站跟目录和 application以及library 没有包含在www目录里,这样也可以起到一定的安全作用,www目录中放置模板,图片等一些代码本节主要讲述和网站入口相关的三个文件 图中中已经用红色表示出首先看看.htaccess文件代码12345678910111213SetEnv APP
阅读全文
摘要:说到PHP单入口模式,很快想到关于PHP的一些框架,zend,thinkphp,qeephp,还有cakephp 等,它们都采用了统一的入口,可以根据不同的需要,分前台入口后台入口或者其他操作权限入口,这样的设计模式优点很明显,比如。权限控制,url重写,结 合MVC清晰地目录结构。这些都是单入口模式所带来的便利,当然这样的也会带来执行效率的疑问。 由单入口模式,我顺便提下单件模式,结合OO特性。 <?phpclass A{ private static $tag = null; private function __construct(){} static function getOb
阅读全文
摘要:前言网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点。简单的说,命名函数表达式只有一个用户,那就是在Debug或者Profiler分析的时候来描述函数的名称,也可以使用函数名实现递归,但很快你 就会发现其实是不切实际的。当然,如果你不关注调试,那就没什么可担心的了,否则,如果你想了解兼容性方面的东西的话,你还是应该继续往下看看。我们先开始看看,什么叫函数表达式,然后再说一下现代调试器如何处理这些表达式,如果你已经对这方面很熟悉的话,请直接跳过此小节。函数表达式和函数声明在E
阅读全文
摘要:一、浏览器的发展与CSS网页浏览器主要通过HTTP协议连接网页服务器而取得网页,HTTP容许网页浏览器送交资料到网页服务器并且获取网页。目前最常用的 HTTP是HTTP/1.1,这个协议在RFC2616中被完整定义。HTTP/1.1有其一套InternetExplorer并不完全支援的 标准,然而许多其他当代的网页浏览器则完全支援这些标准。网页的位置以URL(统一资源定位符)指示,此乃网页的地址;以http:开首的便是通过 HTTP协议登陆。很多浏览器同时支援其他类型的URL及协议,例如ftp:是FTP(档案传送协议)、gopher:是Gopher及https:是 HTTPS(以SSL加密的H
阅读全文
摘要:才华横溢的Stoyan Stefanov,在他写的由O’Reilly初版的新书《JavaScript Patterns》(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会是件很美妙的事情。具体一点就是编写高质量JavaScript的一些要素,例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读,以及更多。此摘要也包括一些与代码不太相关的习惯,但对整体代码的创建息息相关,包括撰写API文档、执行同行评审以及运行JSLint。这些习惯和最佳做法可以帮助你写出更好的,更易于理解和维护的代码,这些代码在几个月或是几年之后再回过头看看也是会觉得很自豪的。书
阅读全文
摘要:jQuery中提供/封装了许多工具类的方法,个人认为比较重要的有:parseJSON方法: parseJSON: function( data ) { //只处理字符串数据 if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // 优先使用本地方法处理,很多现代浏览器中提供了JSON对象用于处理JSON(
阅读全文
摘要:本文将分析jQuery对象操作相关方法(包括静态和实例方法):merge方法,代码如下: //此方法用于合并两个jQuery对象(因为jQuery对象中有length属性)或者数组, //这个方法非常简单,就是简单的追加第二个对象的属性到第一个对象上去 merge: function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i+
阅读全文
摘要:前些日子忙东忙西(比如忙着玩星际之类的,坏笑ing),博客也闲着,闲着闲着居然闲挂掉了~哎~没关系,反正这博客也是我的私人笔记 本,没人看,也就无所谓,昨天刚刚恢复,想起得接着记笔记才行。废话少说,万一本文还有读者借鉴学习呢就浪费看官们的宝贵时间了,\(^o^)/~在历经四次分析之后,core.js文件中只剩下了零零星星一些方法,我把它们大致分为以下几类方法:类型判断相关方法,如isFunction,isArray等;对象操作相关方法,如merge,map等;实用工具方法,如parseJSON,parseXML等;其他内部方法,如access。本文将介绍判断类型相关的方法jQuery中公开了一
阅读全文
摘要:链式调用相对来说简单一点,只需要在每个实例方法的最后返回被操作的对象(一般来说即是this)即可,如下面的remove()方法所示:remove: function( selector, keepData ) { for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { if ( !keepData && elem.nodeType === 1 ) { jQuery.cleanData( ele
阅读全文
摘要:在网上下了一个jQuery 1.2.6的源码分析教程,看得似懂非懂,于是还是去github上下载源码,然后慢慢看源代码学习,首先来说说core.js这个核心文件吧。jQuery整体的基本架构说起来也并不复杂,但是要看明白还是要花一点功夫,core.js这个文件搭建起了jQuery的整个框架,该文件的基本内容我大致总结如下://将整个jQuery 对象作为一个外部接口var jQuery = (function(){var jQuery = function( selector, context ) { //当执行形如$("p")的代码时会new一个jQuery.fn.ini
阅读全文
摘要:上次分析了extend方法的实现,而紧接着extend方法后面调用了jQuery.extend()方法(core.js 359行),今天来看看究竟core.js里为jQuery对象扩展了哪些静态方法。从源文件中看,默认的jQuery方法得有500多行,很多方法通用 性很强,因此在jQuery内部也同样作被相应实例方法所包装,一口气看完还是有点累~所以一个一个来看重要的方法。可能在jQuery初学者中接触到最重要的方法也是最常用的便是jQuery(document).ready(fn)方法了,ready方法也可以简写为$(fn),此方法用来在DOM树加载完成后但是内容(比如图片)并为加载完毕前触
阅读全文
摘要:不得不说,jQuery现在的版本更新速度大有朝chrome看齐的趋势,看来chrome的版本更新价值观很有影响力,github上已经是 1.7版了,不过官方已发布依然是1.6.1,不过想来这些版本内核现在应该是很稳定了,所以学习的时候也不考虑那么多细节了,直接down最新版来啃!在分析core的基本框架的时候已经弄清了,jQuery的实例对象是通过new init方法来返回的,那么init方法便是jQuery的核心方法了,也是jQuery的对外接口jQuery()(即$())的内部实现,熟悉 jQuery的童鞋应该知道除了在构建对象时封装DOM元素为类数组的jQuery实例对象,jQuery(
阅读全文
摘要:jquery的html,val,text,attr平时使用很多,用户设置内容使用。现在学习一下使用方法。 先贴上一段Html代码<body> <form id="form1" action="#"> <select id="select1" name="test" multiple="multiple" style="height:100px"> <option>浙江</option> <option sele
阅读全文
摘要:闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999;...
阅读全文
摘要:之前向大家介绍过全球最大在线图片服务网站Flickr网站架构,Yupoo(又拍网)作为国内最大的图片服务提供商,我们也一起来看看它的架构,同样是提供图片服务,看看他与Flickr的差别在哪里,大家看完本文可以思考一下。一、先来看看Yupoo网站的基本信息:带宽:4000M/S (参考)服务器数量:60 台左右Web服务器:Lighttpd, Apache, nginx应用服务器:Tomcat其他:Python, Java, MogileFS 、ImageMagick 等其架构图如下:原图链接二、关于 Squid 与 TomcatSquid 与 Tomcat 似乎在 Web 2.0 站点的架构中
阅读全文
摘要:CDATA 内部的所有东西都会被解析器忽略。假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。CDATA 区段开始于 "<![CDATA[",结束于 "]]>":<script type="text/javascript"><![CDATA[function compare(a,b){if (a < b) {alert("a小于b&qu
阅读全文