国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

        原生JS實(shí)現(xiàn)ajax詳解

        2018-7-25    seo達(dá)人

        如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

        原生js寫ajax可以類比打電話

        打電話分下面4步:
        1.拿出手機(jī)
        2.撥號(hào)
        3.說(shuō)話
        4.聽對(duì)方說(shuō)話

        ajax也分下面4步:
        1.創(chuàng)建ajax對(duì)象
        2.連接到服務(wù)器
        3.發(fā)送請(qǐng)求(告訴服務(wù)器我要什么文件)
        4.接收返回值

        下面是原生js寫ajax的具體寫法 :

        
            
        1. <script>
        2. window.onload=function()
        3. {
        4. var oBtn = document.getElementById("btn1");
        5. oBtn.onclick = function()
        6. {
        7. //1.創(chuàng)建ajax對(duì)象
        8. //只兼容非ie6的瀏覽器,在ie6瀏覽器上運(yùn)行會(huì)提示沒(méi)有被定義
        9. //var oAjax = new XMLHttpRequest();//這才是ajax實(shí)際的請(qǐng)求
        10. //alert(oAjax);
        11. //ie6瀏覽器下按照下面方法寫,但是在別的瀏覽器中不能用,會(huì)報(bào)錯(cuò)。
        12. //var oAjax = new ActiveXObject("Microsoft.XMLHTTP");
        13. //alert(oAjax);
        14. //鑒于上面出現(xiàn)的問(wèn)題,可以采取下面的方法解決,用if判斷是否為IE6瀏覽器
        15. if(window.XMLHttpRequest)//如果有XMLHttpRequest,那就是非IE6瀏覽器。()里面加window的原因下面會(huì)有描述。
        16. {
        17. var oAjax = new XMLHttpRequest();//創(chuàng)建ajax對(duì)象
        18. }
        19. else//如果沒(méi)有XMLHttpRequest,那就是IE6瀏覽器
        20. {
        21. var oAjax = new ActiveXObject("Microsoft.XMLHTTP");//IE6瀏覽器創(chuàng)建ajax對(duì)象
        22. }
        23. //2.連接服務(wù)器
        24. //open(方法、文件名、異步傳輸)
        25. //方法:
        26. //傳輸方式是get方式還是post方式。
        27. //文件名
        28. //告訴服務(wù)器要讀哪個(gè)文件
        29. //異步傳輸
        30. //異步:多件事一件一件的做
        31. //同步:多件事情一起進(jìn)行
        32. //但是js里面的同步和異步和現(xiàn)實(shí)的同步異步相反。
        33. //同步:多件事一件一件的做
        34. //異步:多件事情一起進(jìn)行
        35. //ajax天生是用來(lái)做異步的
        36. oAjax.open("GET","a.txt?t='+new Date().getTime()",true);//加上t='+new Date().getTime()"的目的是為了消除緩存,每次的t的值不一樣。
        37. //3.發(fā)送請(qǐng)求
        38. oAjax.send();
        39. //4.接收返回
        40. //客戶端和服務(wù)器端有交互的時(shí)候會(huì)調(diào)用onreadystatechange
        41. oAjax.onreadystatechange=function()
        42. {
        43. //oAjax.readyState //瀏覽器和服務(wù)器,進(jìn)行到哪一步了。
        44. //0->(未初始化):還沒(méi)有調(diào)用 open() 方法。
        45. //1->(載入):已調(diào)用 send() 方法,正在發(fā)送請(qǐng)求。
        46. //2->載入完成):send() 方法完成,已收到全部響應(yīng)內(nèi)容。
        47. //3->(解析):正在解析響應(yīng)內(nèi)容。
        48. //4->(完成):響應(yīng)內(nèi)容解析完成,可以在客戶端調(diào)用。
        49. if(oAjax.readyState==4)
        50. {
        51. if(oAjax.status==200)//判斷是否成功,如果是200,就代表成功
        52. {
        53. alert("成功"+oAjax.responseText);//讀取a.txt文件成功就彈出成功。后面加上oAjax.responseText會(huì)輸出a.txt文本的內(nèi)容
        54. }
        55. else
        56. {
        57. alert("失敗");
        58. }
        59. }
        60. };
        61. }
        62. };
        63. /*//上面if里面需要些window的原因
        64. //js里面的變量和屬性
        65. var a = 12;
        66. alert(a);//頁(yè)面上彈出12很正常,而實(shí)際上輸出的是下面的寫法,是屬于window的,只是window能省就省了。
        67. alert(window.a);//輸出結(jié)果是一樣的
        68. window.alert(window.a);
        69. //想a這種全局變量實(shí)際上是winow的一個(gè)屬性。
        70. //如果不定義一個(gè)變量a直接像下面那樣輸出a
        71. alert(a)//系統(tǒng)會(huì)報(bào)錯(cuò),而不是undefind,因?yàn)闆](méi)有定義變量a。
        72. alert(window.a);//如果是這樣寫,系統(tǒng)就不會(huì)報(bào)錯(cuò)了,會(huì)顯示undefind。
        73. //出現(xiàn)上面的原因是因?yàn)橹苯訉慳從根上就找不到a,而前面加上window只是找不到window的屬性a了。*/
        74. </script>

        但是,不能每次用ajax的時(shí)候都寫那么多代碼,要把這段ajax代碼封裝起來(lái),方便使用。

        封裝ajax代碼如下:

        
            
        1. //最后把代碼封裝起來(lái),封裝起來(lái)以后,要給這個(gè)函數(shù)加上一個(gè)參數(shù)url.參數(shù)是為了替換要讀取的文件名
        2. function ajax(url,fnSucc)
        3. {
        4. if(window.XMLHttpRequest)
        5. {
        6. var oAjax = new XMLHttpRequest();
        7. }
        8. else
        9. {
        10. var oAjax = new ActiveXObject("Microsoft.XMLHTTP");//IE6瀏覽器創(chuàng)建ajax對(duì)象
        11. }
        12. oAjax.open("GET",url,true);//把要讀取的參數(shù)的傳過(guò)來(lái)。
        13. oAjax.send();
        14. oAjax.onreadystatechange=function()
        15. {
        16. if(oAjax.readyState==4)
        17. {
        18. if(oAjax.status==200)
        19. {
        20. fnSucc(oAjax.responseText);//成功的時(shí)候調(diào)用這個(gè)方法
        21. }
        22. else
        23. {
        24. if(fnfiled)
        25. {
        26. fnField(oAjax.status);
        27. }
        28. }
        29. }
        30. };
        31. }

        將封裝的ajax調(diào)用:

        
            
        1. <script src="new_ajax.js"></script>//引用封裝的ajax文件
        2. <script>
        3. window.onload=function()
        4. {
        5. var oBtn = document.getElementById("btn1");
        6. oBtn.onclick = function()
        7. {
        8. ajax('a.txt',function(str){//讀取a.txt文件里面的內(nèi)容
        9. alert(str);//將讀取的內(nèi)容輸出
        10. })
        11. }
        12. };
        13. </script>
        藍(lán)藍(lán)設(shè)計(jì)www.shtzxx.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

        日歷

        鏈接

        個(gè)人資料

        存檔

        主站蜘蛛池模板: 曰韩免费无码av一区二区| 亚无码乱人伦一区二区| 免费女人高潮流视频在线观看| 三年片免费观看大全有| 霍林郭勒市| 黑人巨大两根一起挤进交换| 暖暖国语高清免费观看| 国产精品亚洲产品三区| 亚洲中文字幕久久无码精品| 国产精品麻豆成人av电影艾秋| 天堂а√中文最新版地址在线| 日本+国产+欧美| 亚洲 欧美 成人 自拍 高清| 饥渴老熟妇乱子伦视频| 最近2018中文字幕在线高清6| 粉嫩小泬无遮挡久久久久久| 亚洲av 无码片一区二区三区| 国产在线视频一区二区三区98| 中文字幕无码家庭乱欲| 日本少妇| 国产又爽又粗又猛的视频| 一个色的导航| 美女脱个精光露出奶头和尿口| 黄网站色视频免费直播| 久久久老熟女一区二区三区| 国产精品久久久国产盗摄| 国产小嫩模无套中出| 欧美性猛交xxxxxxxx| 社会| 久久伊99综合婷婷久久伊| 在线视频网站www色| 日本熟妇浓毛| 久久精品国产亚洲av麻豆~| 甘孜| 强开乖女嫩苞又嫩又紧免费视频| 欧美伊人久久大香线蕉综合| 99久久无色码中文字幕| 闻喜县| 久久久久无码精品国产| 美女黄频视频大全免费的国内| 久久中文骚妇内射|