行内技术
PHP自动加载__autoload的工作机制
在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。下面是一个实际的例子:/*Person.class.php*/<?phpclassPerson{var$name,$age;function__construct($name,$age){$this->name=$name;$this->age=$age;}}?>...
2013-3-3451
努力坚持你的一万小时之旅
如果我们刻意地不厌其烦地做某件事,那结果会怎么样呢?当我懈怠的时候,我就会想到这个1万小时!随着畅销书《异类》的流行,“练习一万小时成天才”这个口号现在是尽人皆知。也许仍然有不少人相信那些不世出的天才必有天生的神秘能力,但科学家通过大量的调查研究已经达成共识,那就是所有顶级高手都是练出来的。不但如此,最近几年的科学进展,人们可能第一次拥有了一个关于怎样炼成天才的统一理论。好消息是除了某些体育项目对天生的身高和体型有特殊要求之外,神秘的天生素质并不存在,也就是说人人都有可能成为顶级高手。早在20多年以前,芝加哥大学的教育学家BenjaminBloom就曾经深入考察过12...
2013-3-3433
SQL笔试题:公司员工与部门查询
建表:DEPARTMENTS:DEPARTMENT_ID(primarykey),DEPARTMENT_NAME,LOCATIONEMPLOYEES:EMPLOYEE_ID(primarykey),EMPLOYEE_NAME,EMPLOYEE_JOB,MANAGER,SALARY,DEPARTMENT_ID
    列出EMPLOYEES表中各部门的部门号,最高工资,最低工资selectmax(SALARY)as最高工资,min(SALARY)as最低工资,DEPARTMENT_IDfromEMPLOYEESgroupbyDEPARTM...
2013-3-3483
使用MySQL命令行了解SQL的执行结果
在命令行下学习SQL是个非常不错的选择,它可以直观地显示SQL的执行结果,下面使用Navicat的命令行工具看看常用的SQL语句的执行情况。1.显示文章id为1的文章标题。mysql>SELECTtitleFROMnewsWHEREid=1;+--------------------------------------------+|title|+--------------------------------------------+|Java之父:Oracle对Java未来的重要性被夸大了|+-----------------------------...
2013-3-3454
不使用递归如何求裴波那契数列
裴波那契数列1,1,2,3,5,8,13,21…………,一般来说使用递归会使问题简单很多。但是有些时候会要求我们不用递归解决这类问题,比如Lisp这种不支持递归的语言,或者对程序的执行效率要求很高,或者面试等等场合。本文给出一种不使用递归求解裴波那契数列的方案。下面是递归的解法:publicintsum(intn){  if(n<3)    return1;  else    returnsum(n-1)+sum(n-2);}不使用递归的话可以用下面的函数实现:publicintsum(intn){  if(n<3)   ...
2013-3-3541
高效率JavaScript代码的编写技巧
使用DocumentFragment优化多次append添加多个dom元素时,先将元素append到DocumentFragment中,最后统一将DocumentFragment添加到页面。该做法可以减少页面渲染dom元素的次数。经IE和FX下测试,在append1000个元素时,效率能提高10%-30%,FX下提升较为明显。前:for(vari=0;i<1000;i++){varel=document.createElement('p');el.innerHTML=i;document.body.appendChild(el);}后:...
2013-3-3441
数据库视图view初探
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。视图是存储在数据库中的查询的SQL语句,它主要出于两种原因:安全原因,视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和...
2013-3-3437
分享一个JQuery弹出层插件
#windownbg{display:none;position:absolute;width:100%;height:100%;background:#000;/*body-bg*/top:0;left:0;}#windown-box{position:fixed;border:5pxsolid#E9F3FD;background:#FFF;text-align:left;}#windown-title{position:relative;height:30px;border:1pxsolid#A6C9E1;overflow:h...
2013-3-3569
PHPsession的工作原理
PHPSESSION原理我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众多用户的会话数据呢?首先要将客户端和服务器端建立一一联系,每个客户端都得有一个唯一标识,这样服务器才能识别出来。建议唯一标识的方法有两种:cookie或者通过GET方式指定。默认配置的PHP使用session的时会建立一个名叫”PHPSESSID”的cookie(可以通过p...
2013-3-3475
IE下textarea去除回车换行符
在textarea中回车,会产生转义字符\r\n,有些时候我们不需要这两个转移字符,也就是清空textarea。下面的方法并不是清空,但是能够起到差不多的效果。如果在textarea中按回车,内容提交之后,在textarea中会留下\r\n这两个转义字符,光标会在第二行。下面的程序通过alexa将焦点转出去,再通过onfocus="this.value=''"这段代码,将光标拉回到textarea最开始处,这样就起到简易的清空效果效果演示
2013-3-3563
深入JavaScript对象创建的细节
最近深入学习javascript后,有个体会:面向对象的方式编程才是高效灵活的编程,也是现在唯一可以让代码更加健壮的编程方式。如果我们抛开那些玄乎的抽象出类等等思想,我自己对面向对象的从写程序的角度理解就是:复用和封装。复用具体就是让你尽量少写重复代码,封装就是将一些耦合度很高的逻辑放到一个程序块里,而且尽量让里面内容不受外界影响。最后的结论是:优秀的javascript代码都是面向对象的。如何构建javascript对象?ECMA-262对对象的定义是:无序属性的集合,其属性可以包含基本值、对象或函数。javascript的对象其实就是java里的map,即键值对。...
2013-3-3503
印度IT同行给我们的忠告
1.聆听你自己的心声。我们倾向于做好我们所热爱的工作,因此你必须找到一些你喜欢做的事--或者,学会喜欢你正在做的事。2.把高贵的动机放到一边。成功来自于对赢得胜利的渴望,因此你必须有做成这种事的强烈愿望--你必须想赢,必须具备这种杀手的本能。说到底,无论别人怎么说,关键不在于你是怎么做这件事的,而在于你是怎么做成一件事的。正如美国橄榄球教练文斯·隆巴底所说:"成功不代表一切。但成功就是一切。"3.改变你的态度。没有正确的态度,你不可能成功。你必须相信自己,甚至经常保持一种狂热的自信。因为除非你能用成功证实自己,唯一对你有信心的人只有你的父母--如果你足够走运的话。假如...
2013-3-3477
PHP二叉树的一些操作练习
首先是创建一个树节点类,这个类有两个方法,compare()用于比较节点键值的大小,createNode()用于创建新节点。//树节点类classbinaryTreeNode{//比较节点键值的大小functioncompare($oldkey,$newkey){return$newkey-$oldkey;}//建立一个新节点functioncreateNode($key,$left,$right){returnarray('k'=>$key,'l'=>$left,'r'=>$right);}}然后再创建一个二叉树类。...
2013-3-3564
分析用户的网页浏览行为与习惯
事实上,互联网用户浏览网页的习惯和顾客浏览商店中物品的习惯没有多大差别。用户打开一个新的页面,扫视一些文字,并点击第一个引起他兴趣的链接。在这过程中,页面上有大量的区域用户甚至根本没有看过。大部分用户在页面上寻找他感兴趣且可点击的内容,一旦发现目标,点击行为就会发生,但如果页面不符合期望,后退或关闭按钮也将马上被点击。用户是如何浏览你的网站的1.大部分时候用户并非在阅读屏幕上的内容,而是在扫视。用户习惯扫视和快速寻找页面上一些能够引导他理解内容的关键点。2.不要考验用户的耐心当一个页面不能满足用户的期望时,离开就在所难免。希望通过添加相关...
2013-3-3479
用live()方法给新增节点绑定事件
jQuery给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。这个方法是基本是的.bind()方法的一个变体。使用.bind()时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。为此需要再使用一次.bind()才行。比如说:<body><divclass="clickme">Clickhere</div></body>可以给这个元素绑定一个简单的click事件:$('.clickme').bind('click',function(){alert("Boundha...
2013-3-3518
PHP工作模型与运行机制
PHP的工作模型非常特殊。从某种程度上说,PHP和ASP、ASP.NET、JSP/Servlet等流行的Web技术,有着本质上的区别。以Java为例,Java在Web应用领域,有两种技术:JavaServlet和JSP(JavaServerPage)。JavaServlet是一种特殊类型的Java程序,它通过实现相关接口,处理Web服务器发送过来的请求,完成相应的工作。JSP在形式上是一种类似于PHP的脚本,但是事实上,它最后也被编译成Servlet。也就是说,在Java解决方案中,JSP和Servlet是作为独立的Java应用程序执行的,它们在初始化之后就驻留内存,通过特定...
2013-3-3545
SQL练习:获取最后十条记录
获取数据库最后若干条记录是很常见的用法,下面分别用几种方法去实现,当作SQL的练习吧。一种方法是数据库记录倒序排序,然后用limit10子句获取10条:mysql>SELECTtitleASTITLEFROMnewsORDERBYidDESCLIMIT10;查询结果:+-----------------------------------------+|TITLE|+-----------------------------------------+|阿里巴巴反对雅虎CEO进阿里董事会||康盛创想戴志康加入腾讯||Android不断蚕食智能手机...
2013-3-3503
PHP服务器变量$_SERVER介绍
服务器变量$_SERVER汇总介绍:
    $_SESSION['PHP_SELF']--获取当前正在执行脚本的文件名。$_SERVER['SERVER_PROTOCOL']--请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。$_SERVER['REQUEST_TIME']--请求开始时的时间戳。从PHP5.1.0起有效。和time函数效果一样。$_SERVER['argv']--传递给该脚本的参数。我试了下,get方法可以得到$_SERVER['argv'][0];post方法无法给他赋值。$_SERVER['SERVER_NAME']-...
2013-3-3622
PHP修改文件名后缀的方法
有这样一个需求,改变当前目录下指定类型的文件类型。本来想要用批处理来做这个,结果没找到合适。就自己去查了下资料,用PHP来处理一下。不是很经常处理文件,所以对遍历目录还不是很熟悉,找了一下资料,自己修改一下。代码主要的目的是批量更改文件后缀.由于淘宝数据包图片类型的不同,所以要改一下适合的。<?php//本文件和要改变的目录下的文件放在同一文件夹下define("STA",".gif");//原来的文件格式define("END",".jpeg2000");//要改变的格式$dir="./";$arr=allfile($dir);f...
2013-3-3550
如何编写高效简洁的JavaScript代码
简化代码采用更为简短的写法,不仅可以减少输入的字符数,还可以减少文件大小。大部分采用简单写法的代码,执行效率都有轻微提高。1.简化常用对象定义使用varobj={};代替varobj=newObject();使用vararr=[];代替vararr=newArray();2.精简if语句三元操作符可以有效精简只涉及赋值传值操作的if语句,比如:varscore=60,grade;if(score<60){grade="不及格";}else{grade="及格";}可以精简为:varscore=60...
2013-3-3493