摘要: 原文:http://taligarsiel.com/Projects/howbrowserswork1.htm简介浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。将讨论的浏览器今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。本文将基于一些开源浏览器的例子——Firefox、 Chrome及Safari,Safari是部分开源的。根据W3C(World Wide Web Consortium 万维网联盟)的浏览器统计数据,当前(2011年5月),Fi 阅读全文
posted @ 2013-06-14 15:27 Wiliz 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。一、时间复杂度时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。计算方法1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度 阅读全文
posted @ 2013-05-08 13:40 Wiliz 阅读(1542) 评论(1) 推荐(2) 编辑
摘要: APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。系统缓存 它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存3600s(一小时)。但是这样仍会浪费大量CPU时间。因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0)。不过如果这样设置,改运php代码后需要重启WEB服务器。目前使用较多的是指此类缓存。用户数据缓存 缓存由用户在编写PHP代码时用apc_store 阅读全文
posted @ 2013-04-26 15:00 Wiliz 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么 做,它是 一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row['id'] 的速度是$row[id]的7倍。3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。4、在执行for循环之前确 阅读全文
posted @ 2013-04-26 14:51 Wiliz 阅读(371) 评论(0) 推荐(1) 编辑
摘要: 1. 查看linux的内核版本,系统信息,常用的有三种办法: uname -a; more /etc/issue; cat /proc/version;2. 查看apache的版本信息,如果是通过yum,或者是rpm安装的,可以使用rpm -qa |gerp httpd 来查看还可以通过httpd -v来查询;当然,安装好apache后,可以直接elink回环查看apache的信息。3. 查看php的版本信息,如果是通过yum,或者是rpm包安装的,可以使用rpm -qa |grep php来查看同样,也可以使用php -v来查看php的版本信息;一般情况下,大多是通过安装lamp后,使... 阅读全文
posted @ 2013-04-23 15:50 Wiliz 阅读(3867) 评论(0) 推荐(0) 编辑
摘要: 1、安装Apacheyum -y install httpd httpd-devel安装完成后,用/etc/init.d/httpd start 启动apache设为开机启动:chkconfig httpd on2、安装mysqlyum -y install mysql mysql-server mysql-devel同样,完成后,用/etc/init.d/mysqld start 启动mysql(1) 设置mysql密码启动mysql控制台:mysqlmysql>; USE mysql;mysql>; UPDATE user SET Password=PASSWORD(' 阅读全文
posted @ 2013-04-23 15:33 Wiliz 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 一:浏览器显示中文yum install fonts-chinese yum install fonts-ISO8859-2-75dpi 修改 /etc/sysconfig/i18n ,内容如下LANG="en_US.UTF-8"SYSFONT="lat0-sun16" 二:中文输入法安装yum -y install scim* yum -y install Deployment_Guide-zh-* lv-* stardict*三:写成一个脚步 vi install.sh#!/bin/bash#function CentOS5.5浏览器显示中文,解决乱 阅读全文
posted @ 2013-04-23 15:23 Wiliz 阅读(307) 评论(0) 推荐(0) 编辑
摘要: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配 合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 1、which 语法: [root@redhat ~]# which 可执行文件名称 例如: [root@redhat ~]# which passwd /usr/bin/passwd which是通过PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件 2、whereis 语法: [root@redhat ~]# whereis [-bmsu] 文件或者目录名称 参数说 明: -b : 只找二进制文件 -m: 只找在说明文件manu 阅读全文
posted @ 2013-04-23 15:14 Wiliz 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 一般来说著名的linux系统基本上分两大类: 1 RedHat系列:Redhat、Centos、Fedora等 2 Debian系列:Debian、Ubuntu等RedHat 系列:1 常见的安装包格式 rpm 包,安装rpm包的命令是 “rpm -参数” 2 包管理工具 yum 3 支持tar包Debian系列: 1 常见的安装包格式 deb 包,安装deb包的命令是 “dpkg -参数” 2 包管理工具 apt-get 3 支持tar包tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。 rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。优缺点来说,rp 阅读全文
posted @ 2013-04-12 23:29 Wiliz 阅读(1872) 评论(0) 推荐(1) 编辑
摘要: 一、Permission Mode首先,File Permission Mode 是存在 inode 中的信息, 一共有 12 个 bit (0与1):0 是关闭、1是打开。 其中每一个 bit 所代表的意思分别如下: suid, sgid, sticky_bit | user_read, user_write, user_execute | group_read, group_write, group_execute |others_read, others_write, others_execute。举例: 100111101101 (binary mode)但在系统应用及管理上,我们一般 阅读全文
posted @ 2013-04-12 23:09 Wiliz 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 与Windows将硬盘看做“C盘”、“D盘”几个独立的分区不同,Linux将整个文件系统看做一棵树,这棵树的树根叫做根文件系统,用/表示。各个分区通过“挂载”(Mount)以文件夹的形式访问。挂载点linux、unix这类操作系统将系统中的一切都作为文件来管理。在windows中我们常见的硬件设备、磁盘分区等,在linux、unix中都被视作文件,对设备、分区的访问就是读写对应的文件。挂载点实际上就是linux中的磁盘文件系统的入口目录,类似于windows中的用来访问不同分区的C:、D:、E:等盘符。其实winxp也支持将一个磁盘分区挂在一个文件夹下面,只是我们C:、D:这样的盘符操作用惯了 阅读全文
posted @ 2013-04-12 22:22 Wiliz 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 首先,我先抛出一个定论:”在Javascript中,This关键字永远都指向函数(方法)的所有者”。函数function introduce() { alert("Hello, I am Laruence\r\n");}对于这个函数,this关键字指向谁呢?如我之前的文章所述(Javascript作用域),定义在全局的函数,函数的所有者就是当前页面,也就是window对象。这也就是为什么,我把函数用引号引起来,因为定义在全局的函数,其实也就是window对象的一个方法。所以,我们即可用通过函数名直接调用,也可用通过window.方法名来调用,这个时候,方法中的this关键字 阅读全文
posted @ 2013-04-11 22:32 Wiliz 阅读(308) 评论(0) 推荐(0) 编辑
摘要: call 方法定义:调用一个对象的一个方法,以另一个对象替换当前对象。语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])参数: thisObj 可选项。将被用作当前对象的对象。arg1, arg2, , argN 可选项。将被传递方法参数序列。说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。apply方法定义:应用某一对象的一个方法,用另一个对象替换当前对象。语法:appl 阅读全文
posted @ 2013-04-11 21:57 Wiliz 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、prototype 由来我一直很难理解Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承。如果真的是一种简易的脚本语言,其实不需要有"继承"机制。但是,Javascript里面都是对象,必须有一种机制,将所有对象联系起来。所以,Brendan Eich最后还是设计了"继承"。但是,他不打算引入&q 阅读全文
posted @ 2013-04-10 23:30 Wiliz 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 多层数据结构估计所有的web开发者估计都不会陌生,各种软件的分类都是基于多层结构来设计的。下面是一个典型的多层数据结构示意图:相关创建数据语句:CREATE TABLE category(category_id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(20) NOT NULL,parent INT DEFAULT NULL);INSERT INTO categoryVALUES(1,'ELECTRONICS',NULL),(2,'TELEVISIONS',1),(3,'TUBE',2),(4, 阅读全文
posted @ 2013-04-02 13:18 Wiliz 阅读(1143) 评论(0) 推荐(1) 编辑