您的位置:首页 > 其它

ajax基本原理实例

2008-02-03 21:35 453 查看
t.htm
<scrīpt>
function f(){
var req =new ActiveXObject("Microsoft.XMLHTTP");
req.open("GET","t.php?t1="+t1.value, true);
req.onreadystatechange = function(){
  if (req.readyState == 4) {
  if (req.status == 200) {
   msg.innerText = req.responseXML.documentElement.tagName;
}
}
}
req.send(null);
}
</scrīpt>
<div>1:显示"OK"; 其他字符:显示"Error"</div>
<input id=t1 value=1>
<input type=button value="检测" ōnclick="javascrīpt:f()">
<div id=msg></div>
t.php
CODE: [Copy to clipboard]
--------------------------------------------------------------------------------

header('Content-type: text/xml');
if($_GET['t1'] == "1")
{
echo("<OK/>");
}
else
{
echo("<ERROR/>");
}
要实现跨浏览器的才行,最近在看foundations of ajax一书,得到了很大的启发。可以把代码贴出来给大家参考
1:根据不同 的浏览器,这里主要针对IE和非IE。创建一个XMLHttpRequest对象
var xmlHttp;
function createXHR()
{
var xmlHttp;
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
2:然后再是对xmlHttp对象进行功能赋值操作
function doAjaxCall()
{
var url = "xxx.php"
//注意这里要送进去的url,可以和任何的服务器技术结合,php,jsp等等
//这里只解释一下js,如果涉及到服务器技术,到底怎么通讯打算重新开个贴,贴个仔细的给大家
xmlHttpCall = createXHR();//刚才写的返回对象函数
xmlHttpCall.onreadystatechange = fillCallInfo;//回调函数
xmlHttpCall.open("GET",url,true);//进行连接
xmlHttpCall.send(null);//发送,只有是POST方法时,才会有值可送
}
3:写回调函数

function fillCallInfo()
{
if(xmlHttpCall.readyState == 1)
{
alert("开始加载");
}
if(xmlHttpCall.readyState == 4)
{
if(xmlHttpCall.status == 200)
{

alert(xmlHttp.responseXML);


}
else if(xmlHttpMember.status == 404)
{
alert("文件未找到");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: