最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

AJAX

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

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

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

首先 通過表單的提交事件調(diào)用相應(yīng)的驗(yàn)證方法 和ajax提交方法 如果說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)部 并添加一個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)化成一串字符串 每個項(xiàng)目之間用&連接
 request.open("post",whichform.getAttribute("action"),true); //向表單目標(biāo)地址準(zhǔn)備提出名為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]; //正則表達(dá)式返回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ù)組存放 一項(xiàng)里面為name和被URL轉(zhuǎn)義的value 然后把他每項(xiàng)通過&連接 組成一個完整的字符串

第四 設(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之圖片的延遲加載的實(shí)例詳解

    Javascript之圖片的延遲加載的實(shí)例詳解

    這篇文章主要介紹了Javascript之圖片的延遲加載的實(shí)例詳解的相關(guān)資料,這里對延遲加載和異步加載進(jìn)行了詳解和使用方法,需要的朋友可以參考下
    2017-07-07
  • javascript操作表格

    javascript操作表格

    javascript操作表格...
    2006-07-07
  • js中的getElementById的使用方法

    js中的getElementById的使用方法

    getElementById是JavaScript中的一個DOM方法,用于根據(jù)元素的id屬性獲取HTML文檔中的元素,本文給大家介紹js中的getElementById的使用方法,感興趣的朋友一起看看吧
    2023-10-10
  • JS判斷空對象的幾個方法大盤點(diǎn)

    JS判斷空對象的幾個方法大盤點(diǎn)

    在做數(shù)據(jù)交互的時候,我們經(jīng)常需要判斷數(shù)據(jù)或者對象是不是為空,避免當(dāng)接口異常時候前端頁面崩潰,下面這篇文章主要給大家介紹了關(guān)于JS判斷空對象的幾個方法,需要的朋友可以參考下
    2022-02-02
  • js仿黑客帝國字母掉落效果代碼分享

    js仿黑客帝國字母掉落效果代碼分享

    這篇文章主要展示了js仿黑客帝國字母掉落效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • Javascript讓DEDECMS告別手寫Tag

    Javascript讓DEDECMS告別手寫Tag

    dedecms在編輯修改內(nèi)容時,TAG標(biāo)簽需要手動輸,中文的Tag, 中間還得用半角字符','分隔, 輸入法切來切去很不方便, 于是動手改后臺代碼, 利用后臺的tags_main.php, 讓dedecms添加內(nèi)容時能去tags_main里去選擇.
    2014-09-09
  • ES2020 已定稿,真實(shí)場景案例分析

    ES2020 已定稿,真實(shí)場景案例分析

    許多新的特性被提議包括在 ES2020版本中。好消息是這些已經(jīng)已經(jīng)敲定。 現(xiàn)在,我們獲得了最終定稿的功能清單,它們將在被批準(zhǔn)發(fā)布之后出現(xiàn)在備受期待的 ES2020 中,具體內(nèi)容詳情,大家可以閱讀下本文
    2020-05-05
  • javascript實(shí)現(xiàn)視頻彈幕效果(兩個版本)

    javascript實(shí)現(xiàn)視頻彈幕效果(兩個版本)

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)視頻彈幕效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 微信小程序 簡易計(jì)算器實(shí)現(xiàn)代碼實(shí)例

    微信小程序 簡易計(jì)算器實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了微信小程序 簡易計(jì)算器實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • js實(shí)現(xiàn)簡易計(jì)數(shù)器功能

    js實(shí)現(xiàn)簡易計(jì)數(shù)器功能

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)計(jì)數(shù)器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評論

平江县| 湘潭市| 射阳县| 和田县| 衡水市| 左权县| 陈巴尔虎旗| 平阴县| 绍兴县| 吉安市| 黑龙江省| 庆云县| 克什克腾旗| 益阳市| 通化市| 平安县| 岳阳市| 出国| 叙永县| 江门市| 土默特右旗| 昭苏县| 灵宝市| 河北省| 株洲县| 富锦市| 常德市| 盐池县| 依兰县| 赤壁市| 榆中县| 清流县| 甘肃省| 满洲里市| 屯昌县| 中西区| 界首市| 金阳县| 五峰| 凌海市| 罗源县|