ajax与js区别,一直都弄不懂
我刚学js不久,总听说ajax,但是一直搞不懂
求大侠们介绍介绍
[解决办法]
ajax (异步JavaScript和XML)
= 异步XMLHttpRequest(js内置对象)
+ js
+ xml (现在流行的是json)
就是使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
操作中使用js,建立一个XMLHttpRequest对象,发送一个url和别的参数,对返回数据(xml or html or json or text) 进行进一步处理。
[解决办法]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ajax实例</title>
<script>
var xmlHttp
function showHint(str)
{
if (str.length > 0)// 如有字符被输入文字输入区(str.length>0)函数就执行
{
var url="gethint.asp?sid="+Math.random()+"&q="+str;
xmlHttp=GetXmlHttpObject(stateChanged);// 建立一个XMLHTTP对象
xmlHttp.open("GET", url , true)// 发送一个HTTP请求到服务器上的"gethint.asp"上
xmlHttp.send(null)
// 如需将请求发送到服务器,我们使用 xmlHttp 对象的 open() 和 send() 方法:
// open(method,url,async)
// 规定请求的类型、URL 以及是否异步处理请求。
// method:请求的类型;GET 或 POST
// url:文件在服务器上的位置
// async:true(异步)或 false(同步)
// 与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
// 然而,在以下情况中,请使用 POST 请求:
// 无法使用缓存文件(更新服务器上的文件或数据库)
// 向服务器发送大量数据(POST 没有数据量限制)
// 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
}
else
{
document.getElementById("txtHint").innerHTML=""
}
}
// 当HTTP触发一次变动则XMLHTTP对象就会执行stateChanged()函数
function stateChanged()
{
if (xmlHttp.readyState==4
[解决办法]
xmlHttp.readyState=="complete")
{
// 当状态改变为4(或为"完成")txtHint span里就会显示反馈的文字
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null;
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesnt work in Opera");
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}
// 下面包括了一个称做“txtHint”的SPAN。这个SPAN是用来存储从服务器重新获得的信息的。
// 当用户输入数据,名为“showHint()”的函数将被执行。
// 这个函数的执行是由“onkeyup”事件触发的。
// 换种说法:每当用户在txt1区域内触动键盘按钮,showHint的功能就被执行。
</script>
</head>
<body>
<form>
First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)">
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
