AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
如何使用ajax:
1.创建一个XMLlHttpRequest 对象:
var xmlhttp; function loadXMLDoc() { if (window.XMLHttpRequest) {// code for IE7+,Firefox,Chrome,Opera,Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6,IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }2.向服务器发送请求:(使用.open()和.send()方法)
xmlHttp.open("method",url,async);
xmlHttp.send();
解释:method请求类型:POST或GET(GET简单快捷适合发送少量数据,POST比GET稳定可靠可发送大量数据无数据量的限制);
url:文件在服务器上的位置;
async:传输方式true(异步客户端和服务器之间发送数据互不影响)或false(同步)。
3.服务器响应:使用ResponseText(获取字符串类型的响应数据)或ResponseXML(获取XML类型的响应数据)属性
4.执行响应任务:
xmlHttpRequest对象的三个重要属性:
DOM操作将请求的数据放到相应的html文件内容的相应位置:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
5.传输完成
完整原生代码:
var xmlhttp; var date=new Date(); function loadXMLDoc(url,cmp) { if (window.XMLHttpRequest) {// code for IE7+,IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=cmp; xmlhttp.open("get",true); xmlhttp.send(); } function Myfunction(){ loadXMLDoc("list.txt?t="+date.toLocaleTimeString(),function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }); }
jQuery 下的ajax应用:
1.load()方法:
load(url,[data],[callback])
data(可选)object 发送至服务器的key/value数据
callback(可选)Function 请求完成时的回调函数,无论请求是否成功
传递方式:
// 无参数传递,则是GET方式 $("#reset").load("test.PHP",funtion(){ //...... });
//有参数传递,则是POST方式 $("#reset").load("test.PHP",{user:"wang",age:"10"},function (){ //..... });
$("#reset").load("test.PHP",funtion(responseText,textStatus,XMLHttpRequest){ // responseText : 请求返回的内容 // textStatus : 请求返回的状态(success、error、notmodified、timeout四种) // XMLHttpRequest对象 });
$(function(){ $("#div1").click(function(){ $.get("get1.PHP",{ username:$("#username").val(),content:$(".content").val() },function(data,textStatus){ var username = data.username; var content = data.content; var txtHtml = "<div class='comment'><h6>"+username +"</h6><p class='para'>"+content+"</p></div>"; $("#resText").html(txtHtml); },"json"); }) });
3.$.post()方法:
有三点区别:
(1)get请求会将参数跟在url后进行传递,而post请求则作为http消息的实体内容发送给web服务器;
(2)get请求有数据量的限制(不大于2KB),post请求可以发送大量数据(理论上不受限制);
(3)get传输不太安全,请求的数据会被浏览器缓存下来(cookie),会从历史记录中读取(重要的user、passwd),而post相对安全可避免此类问题。
4.$.getScript()
$(function(){ $("#send").click(function(){ $.getScript("test.js"); }); });5.$.getJSON()方法:
$(function(){ $("#send").click(function(){ $.getJSON("test.json"); }); });6.$.ajax()方法:
$.ajax()方法是jQuery最底层的ajax实现,用它可以代替上面的所有的jQurey方法。
$(function(){ $("#send").click(function(){ $.ajax({ tyoe:"GET",url:"test.js"; datatype:"script" }); }); });
初次学习,不足之处还望各位博友指正!
原文链接:https://www.f2er.com/ajax/162022.html