Ajax异步请求所耗时间比较

Ajax异步获取目标内容所耗的时间对比.方法1.
MVC的模式访问目录对象的指定函数,执行查询语句
方法2.直接创建sql语句和数据库连接,执行查询语句
.方法3.ZendFramework的Zend_Db执行查询语句Html代码:input
type=textname=username id=username
onblur=’cek.checkUser()’/将执行以下Js代码:复制内容到剪贴板Var cek =
{checkUser : function(user) {if(!$(‘modify’).value ||
$(‘default_user’).value != $(user).value) {var url =
?mod=adminfile=sysmethod=checkusername;//var url = ‘test.php;//var url =
‘../private/zend/index.php’;var pars = ”;var myAjax = new
Ajax.Request(url,{method:’get’,parameters:pars,onComplete:function(contents)
{}});}}}方法1.以MVC模式实现连接数据库并执行查询语句的功能,?mod=adminfile=sysmethod=checkusername所执行的代码如下:复制内容到剪贴板$application
= new SysAction;$application-checkusername();Class sysAction {Function
checkusername() {$link = new DbLink(); $rs =
$link-checkUser(username=crane);}}共创建两个对象.SysAction,DbLink,所耗时间如下:GET(63ms)GET(62ms)GET(62ms)GET(62ms)GET(62ms)GET(63ms)方法2.直接连接数据库,并执行查询语句.
test.php所执行代码如下:复制内容到剪贴板$db =
mysql_connect(‘localhost’,’root’,’123456′);mysql_select_db(‘test’);$sql
= select * from table where username=’crane’;$result =
mysql_query($sql,$db);while($row = mysql_fetch_array($result))
{}所耗时间如下:GET (15ms)GET (15ms)GET (15ms)GET (15ms)GET (15ms)GET
(15ms)方法3.ZendFramework框架中Zend_Db类,执行查询语句,../private/zend/index.php代码如下.
主文件部分代码.复制内容到剪贴板$frontController
=Zend_Controller_Front::getInstance();$frontController-throwExceptions(true);$frontController-setControllerDirectory(‘application/controllers’);$frontController-dispatch();控制器部分代码:复制内容到剪贴板require_once
‘Zend/Db.php’;class IndexController extendsZend_澳门新葡亰网站注册,Controller_Action
{function init() {}functionindexAction() {$params= array(host=
‘localhost’,username= ‘root’,password= ‘123456’,’dbname’ =
‘test’);//$user= ‘crane’;$db=
Zend_Db::factory(‘PDO_MYSQL’,$params);$select=
$db-select();$select-from(‘table’,’username’)-where($db-quoteInto(‘username=?’,’crane’));$sql=
$select-__toString();$result= $db-fetchAll($sql);}}所耗时间如下:GET
(125ms)GET (141ms)GET (110ms)GET (141ms)GET (109ms)GET
(141ms)测试环境:Windows NT 5.1 build 2600Apache 2.0PHP 5.2.5Mysql
5.0.45Zend Optimizer
v3.3.0PHP的面向对象一直以来就有争议,这里仅是在异步调用时所耗的时间对比。Mysql与php性能最优的环境当然是lamp,有兴趣的可以试试在最简最优环境下测试一下。PHP使用对象比不使用对象更耗时间是肯定的,但PHP的cache和静态化对项目的速度提高有决定性的意义,大型项目的开发,这种机制是必不可少的。这里所做的测试,仅仅说明不同需求的项目,可采用不同的实现方法,没必要凡用必OO^_^