
现在网络对上AJAX的评论很多,我并不打算凑热闹,只是简单的对自己对AJAX的学习作点笔记和小结罢了。
IT界内没有迷信,只有一个一个的奇迹和突破,AJAX作为一种应用而不是一种新的技术出现,自然有一种使用习惯的影响在内。如我,喜欢LINUX,不喜欢WINDOWS,但有时候不得不用WIN。我不迷信某一种思想和技术。而使用AJAX与我使用LINUX相反,我喜欢AJAX的应用,但一般情况下我不会常用,现在产品的展示是一股脑信息的一次性给顾客,这比用户要一点得到一点要强,虽然在数据传输量上AJAX占优势,不要的不传,但在时间和对数据库压力增大了。
比较两个SQL
1. select id,name from user limit 30;
2. select name from user where id=$id
如果你要一两个用户的信,可能第二中方式要好些,但是我要10个用户的或者更多的话写第二种SQL就是自己跟自己的服务器,跟浏览者过不去了。
另外一点是为了浏览器兼容问题,要几十行代码来控制,在加上OPEN,SEND等一个简单的AJAX需要50行左右,如果应用量比较小,直接用IFRAME实现(现在被称之为伪AJAX)要快得多。比方说前阵做了一个程序,是要求网站访问记数的,等页面加载完毕之后才算作是一次有效点击。实现方法:
ajax方法:
// 浏览器兼容性解决
function createXMLHttpRequest() {
var xmlHttp = null;
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
//alert("Microsoft.XMLHTTP");
}
catch(oc)
{
xmlHttp=null;
//alert('null');
}
}
//alert(xmlHttp);
if ( !xmlHttp && typeof XMLHttpRequest != "undefined" )
{
xmlHttp = new XMLHttpRequest()
}
//alert(xmlHttp.readyState);
return xmlHttp;
}
function recordHit()
{
//建立xmlhttp
var xmlhttp = createXMLHttpRequest();
url = "record.php?id=<?php echo $id; ?>";
xmlhttp.open("get",url,true);
}
<html>
<body onload="recordHit();">
</body>
</html>
非AJAX解决方法要简洁的多:
<html>
<body onload="javascript: document.getElementById('iframe').src=record.php?id=<?php echo $id; ?>">
<iframe id="iframe" systle="display=none"></iframe>
</body>
</html>
上面是一个应用,强调一个问题,小应用的不需要用AJAX,比如在一些示例中演示了一些EMAIL验证,用户名唯一性验证等问题,验证EMAIL只用JS不行么,还要在服务器上验证?唯一性验证应用比较广,但用以个IFRAME照样可以解决问题。使IFRAME返回一个
<script language="javascript">
parent.document.getElement.tip.innerHTML = "The name has been used";
</script>
一样OK。
但是如果返回的数据量比较多,或者请求数比较多的时候,就可以,也建议使用AJAX了,发超量数据给用户是不行的,建立N多个IFRAME也不理智。前段时间写了一个聊天室,聊天室算是WEB里面交互行很强的一种应用,请求数很多,用AJAX就比较理智了。