国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

JavaScript基礎(chǔ)之AJAX簡單的小demo

2024-09-01 08:33:50
字體:
供稿:網(wǎng)友

AJAX

AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。

AJAX 不是新的編程語言,而是一種使用現(xiàn)有標(biāo)準的新方法。

AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下。

function prepareForms() { for(var j=0 ; j<document.forms.length ; j++){  var this_forms = document.forms[j];  resetFields(this_forms);   this_forms.onsubmit = function () {    if(!validateForm(this)) return false; //進行瀏覽器端表單驗證    var article = document.getElementsByTagName("article")[0];    if(submitFormWithAjax(this,article)) return false; //代表防止重復(fù)提交 實際的提交已經(jīng)完成   return true;   } }}

首先 通過表單的提交事件調(diào)用相應(yīng)的驗證方法 和ajax提交方法 如果說ajax提交成功 返回false 攔截提交事件 如果ajax失敗 則正常提交

function displayAjaxLoading(element) { while(element.hasChildNodes()){  element.removeChild(element.lastChild); //如果還有子節(jié)點 重復(fù)刪除 直到內(nèi)部為空 } var content = document.createElement("img"); content.setAttribute("src","images/loading.gif"); content.setAttribute("alt","loading...."); element.appendChild(content);} //拿到元素 清空內(nèi)部 并添加一個imgfunction submitFormWithAjax(whichform,thetarget) { var request = getHTTPObject(); if(!request){return false ;} displayAjaxLoading(thetarget);//調(diào)用加載方法 var dataParts = []; var element; //提前創(chuàng)建要用的容器 for(var i=0 ; i<whichform.elements.length ; i++){  element = whichform.elements[i];  dataParts[i] = element.name + "=" +encodeURIComponent(element.value) //把元素的名字和值轉(zhuǎn)化成URL編碼放入容器中 } var data = dataParts.join("&"); //把數(shù)組轉(zhuǎn)化成一串字符串 每個項目之間用&連接 request.open("post",whichform.getAttribute("action"),true); //向表單目標(biāo)地址準備提出名為post的請求 request.setRequestHeader("content-type","application/x-www-form-urlencoded");//設(shè)置頭部信息 //獲取請求后就會調(diào)用一下的 方法 算是一個觸發(fā)器 服務(wù)器會執(zhí)行以下內(nèi)容 request.onreadystatechange = function () {  if(request.readyState == 4){   if(request.status == 200 || request.status == 0){    var matches = request.responseText.match(/<article>([/s/S]+)<//article>/) //捕獲文本    if(matches.length>0){     thetarget.innerHTML = matches[1]; //正則表達式返回0為包含<article> 1為不包含的版本    }    else {     thetarget.innerHTML = "<p>sorry not find</p>";    }   }   else {    thetarget.innerHTML = "<p>" + request.statusText + "</p>";   }  } } request.send(data); //對目標(biāo)服務(wù)器發(fā)送請求 return true;//代表函數(shù)執(zhí)行完畢}

讓我們分步來查看具體做了什么事情

第一 獲取了一個請求對象

第二 調(diào)用display方法 讓頁面刪除article下的所有元素并放上load動畫

第三 創(chuàng)建URL編碼的請求 用數(shù)組存放 一項里面為name和被URL轉(zhuǎn)義的value 然后把他每項通過&連接 組成一個完整的字符串

第四 設(shè)置了請求的基本屬性 比如命名 目標(biāo)地址 頭文件

第五 創(chuàng)建一個監(jiān)聽程序 監(jiān)聽請求 如果成功則把響應(yīng)的html填入到目標(biāo)article中
第六 正式發(fā)送請求 成功返回ture

以上所述是小編給大家介紹的JavaScript基礎(chǔ) AJAX簡單的小demo ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉黎县| 拉萨市| 农安县| 深圳市| 正镶白旗| 贵德县| 诏安县| 榆社县| 绥芬河市| 静宁县| 双鸭山市| 大悟县| 樟树市| 德令哈市| 吴旗县| 潜江市| 潜山县| 天台县| 炉霍县| 南汇区| 聂荣县| 陇南市| 公主岭市| 长沙市| 石渠县| 甘孜县| 普安县| 依兰县| 德惠市| 长阳| 大宁县| 大同市| 龙里县| 吉水县| 成安县| 师宗县| 南江县| 宜君县| 油尖旺区| 阿克苏市| 锡林郭勒盟|