亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年01月29日 11:57:03   作者:u012182627  
這篇文章主要介紹了JavaScript基礎(chǔ)之AJAX簡(jiǎn)單的小demo ,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下

AJAX

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

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

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

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; //進(jìn)行瀏覽器端表單驗(yàn)證
    var article = document.getElementsByTagName("article")[0];
    if(submitFormWithAjax(this,article)) return false; //代表防止重復(fù)提交 實(shí)際的提交已經(jīng)完成
   return true;
   }
 }
}

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

function displayAjaxLoading(element) {
 while(element.hasChildNodes()){
  element.removeChild(element.lastChild); //如果還有子節(jié)點(diǎn) 重復(fù)刪除 直到內(nèi)部為空
 }
 var content = document.createElement("img");
 content.setAttribute("src","images/loading.gif");
 content.setAttribute("alt","loading....");
 element.appendChild(content);
} //拿到元素 清空內(nèi)部 并添加一個(gè)img
function 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)化成一串字符串 每個(gè)項(xiàng)目之間用&連接
 request.open("post",whichform.getAttribute("action"),true); //向表單目標(biāo)地址準(zhǔn)備提出名為post的請(qǐng)求
 request.setRequestHeader("content-type","application/x-www-form-urlencoded");//設(shè)置頭部信息
 //獲取請(qǐng)求后就會(huì)調(diào)用一下的 方法 算是一個(gè)觸發(fā)器 服務(wù)器會(huì)執(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]; //正則表達(dá)式返回0為包含<article> 1為不包含的版本
    }
    else {
     thetarget.innerHTML = "<p>sorry not find</p>";
    }
   }
   else {
    thetarget.innerHTML = "<p>" + request.statusText + "</p>";
   }
  }
 }
 request.send(data); //對(duì)目標(biāo)服務(wù)器發(fā)送請(qǐng)求
 return true;//代表函數(shù)執(zhí)行完畢
}

讓我們分步來(lái)查看具體做了什么事情

第一 獲取了一個(gè)請(qǐng)求對(duì)象

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

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

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

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

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

相關(guān)文章

  • javascript獲取div的內(nèi)容 精華篇

    javascript獲取div的內(nèi)容 精華篇

    用js獲取div的內(nèi)容的方法,其實(shí)原理就是利用innerText或innerHTML
    2009-05-05
  • 基于javascript 顯式轉(zhuǎn)換與隱式轉(zhuǎn)換(詳解)

    基于javascript 顯式轉(zhuǎn)換與隱式轉(zhuǎn)換(詳解)

    下面小編就為大家分享一篇基于javascript 顯式轉(zhuǎn)換與隱式轉(zhuǎn)換(詳解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 利用threejs實(shí)現(xiàn)一個(gè)簡(jiǎn)易的泊車功能

    利用threejs實(shí)現(xiàn)一個(gè)簡(jiǎn)易的泊車功能

    這篇文章主要為大家詳細(xì)介紹了如何利用threejs實(shí)現(xiàn)一個(gè)簡(jiǎn)易的泊車功能,文中的示例代碼講解詳細(xì),對(duì)大家的學(xué)習(xí)和工作有一定的幫助,感興趣的小伙伴可以動(dòng)手嘗試一下
    2024-01-01
  • JavaScript實(shí)現(xiàn)下拉菜單的顯示隱藏

    JavaScript實(shí)現(xiàn)下拉菜單的顯示隱藏

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)下拉菜單的顯示隱藏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 剖析CocosCreator新資源管理系統(tǒng)

    剖析CocosCreator新資源管理系統(tǒng)

    這篇文章主要介紹了CocosCreator新資源管理系統(tǒng),從v2.4開(kāi)始,Creator使用AssetBundle完全重構(gòu)了資源底層,提供了更加靈活強(qiáng)大的資源管理方式,也解決了之前版本資源管理的痛點(diǎn)(資源依賴與引用),本文將帶你深入了解Creator的新資源底層。
    2021-04-04
  • JavaScript模擬鼠標(biāo)右鍵菜單效果

    JavaScript模擬鼠標(biāo)右鍵菜單效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript模擬鼠標(biāo)右鍵菜單效果的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • uniapp-路由uni-simple-router安裝配置教程

    uniapp-路由uni-simple-router安裝配置教程

    專為uniapp打造的路由器,和uniapp深度集成,uniapp用到了很多vue的api,但在路由管理的功能相對(duì)于vue-router還是比較欠缺的,比如全局導(dǎo)航守衛(wèi),本文給大家講解uniapp-路由uni-simple-router相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • javascript中的繼承實(shí)例代碼

    javascript中的繼承實(shí)例代碼

    javascript中的繼承使用實(shí)例代碼,需要的朋友可以參考下。
    2011-04-04
  • 深入理解JS addLoadEvent函數(shù)

    深入理解JS addLoadEvent函數(shù)

    下面小編就為大家?guī)?lái)一篇深入理解JS addLoadEvent函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • javascript異常處理實(shí)現(xiàn)原理詳解

    javascript異常處理實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了javascript異常處理實(shí)現(xiàn)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論