Ajax

Ajax知識點;

AJAX是一種用于創建快速動態網頁的技術;
從后臺提取數據利用創建動態節點,把后臺數據展示在頁面中。
Ajax技術的核心是XMLHttpRequest對象(簡稱XHR),可以通過使用XHR對象獲取到服務器的數據,然后再通過DOM將數據插入到頁面中呈現。雖然名字中包含XML,但Ajax通訊與數據格式無關,所以我們的數據格式可以是XML或JSON等格式。
  XMLHttpRequest對象用于在后臺與服務器交換數據,具體作用如下:
在不重新加載頁面的情況下更新網頁
在頁面已加載后從服務器請求數據
在頁面已加載后從服務器接收數據
在后臺向服務器發送數據
來源: http://kb.cnblogs.com/page/150964/

通過在后臺與服務器進行少量的數據交換,Ajax可以使網頁實現異步更新(不重新加載頁面的情況下更新網頁)

    XMLHttpRequest對象;
創建XHR對象:
var XHR = new  XMLHttpRequest();
   兼容瀏覽器
    var xhr;
        //1.2根據標準的瀏覽器是否支持標準的創建方法來創建對象
        //先判斷瀏覽器是否具備XMLHttpRequest()方法;
        if(window.XMLHttpRequest){
            //有,表示當前是標準瀏覽器;
             xhr = new XMLHttpRequest(); // 支持IE8,9;w3c標準。
        }else{
            //無,表示不是標準瀏覽器, 是IE5,6,7;
            //在IE5,6,7這些老版的瀏覽器中,Ajax組件是放在ActiveXObject組件庫中的,需要傳入Micrsoft.XMLHTTP 這個參數才能返回出這個組件。
             xhr = new ActiveXObject('Micrsoft.XMLHTTP');
        }
創建的XHR對象
    在使用XHR對象時,要調用的第一個方法時open();三個參數:
發送請求的類型?:post   or  get;
請求的URL;

表示是否異步發送請求的布爾值;
    <script type="text/javascript">
        //1創建Ajax對象
        //1.1 定義變量 用來保存創建出的對象(XMLHttpRequest這個對象);
        var xhr;
        //1.2根據標準的瀏覽器是否支持標準的創建方法來創建對象
        //判斷瀏覽器是否具備XMLHttpRequest()方法;
        if(window.XMLHttpRequest){
            //有,表示當前是標準瀏覽器;
             xhr = new XMLHttpRequest(); // 支持IE8,9;w3c標準。
        }else{
            //無,表示不是標準瀏覽器, 是IE5,6,7;
            //在IE5,6,7這些老版的瀏覽器中,Ajax組件是放在ActiveXObject組件庫中的,需要傳入Micrsoft.XMLHTTP 這個參數才能返回出這個組件。
             xhr = new ActiveXObject('Micrsoft.XMLHTTP');
        }
            //2 配置請求信息
        /*
           open函數中的三個參數
             1 設置請求方式 GET , POST;
             2 設置請求的數據接口地址;
             3 設置請求是否是異步請求(異步請求當請求發送出去后,不在等待請求的數據而是先執行其他任務,當數據到達本地后再處理,默認請求時異步;)
        */  
        // xhr.open("POST","JSON.html",true);
        
        /*GET請求
            如果有參數,則把請求參數直接拼接在url之后;
        */
        xhr.open('GET','JSON.html',true);   
        /*
        3 發送請求:
        GET 請求send()參數可以不寫,最好在send(null)參數中寫上null;
        */
        xhr.send();
        /*POST參數問題
             把post請求所需要的參數放在send方法中
        */
        // xhr.send('user='+encodeURI('張三')+'&password=1234567');
        // post請求參數中如果有中文字符,則需要對中文符號進行編碼操作 轉成unicode編碼
        
        // $tempInfo_post();  php中接受post的請求參數
        /*
        4 監聽數據傳輸情況:
        */
        xhr.onreadystatechange = function(){
            // console.log(xhr.readystate);
            if(xhr.readystate == 4 && xhr.status ==200){
                console.log('拿到數據');
                
            }
        }
        xhr.status = 200;
    </script>

避免緩存問題:

Paste_Image.png

JSON:
json是一個輕量級的數據格式,可以簡化表示復雜數據結構的工作量,JSON使用javascript語法的子集表示對象,數組。字符串,數值,布爾值及null;即使XML也能表示同樣的復雜數據結果,但是JSON沒有那么多的繁瑣,而且在javascript中使用很便利;
ECMAScript5 定義了一個原生的JSON隊形,可以用來將對象序列化為JSON字符轉或者將JSON數據解析為Javascript對象,JSON.stringify()和JSON.parse()方法分別用來實現上面的兩個功能,這兩個方法都設有一些選項,通過他們可以改變過濾的方式,或者 改變序列變化的過程;

Paste_Image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • AJAX 原生js操作ajax 1.創建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,265評論 0 7
  • Ajax的基本概念及使用 同步&異步 同步:必須等待前面的任務完成,才能繼續后面的任務; 異步:不受當前主要任務的...
    magic_pill閱讀 1,974評論 0 5
  • 第1章 jQuery實現Ajax應用 1-1 使用load()方法異步請求數據 使用load()方法通過Ajax請...
    mo默22閱讀 1,736評論 1 9
  • 原文出處 http://blog.poetries.top/2016/11/26/Ajax-summary 關注公...
    前端進階之旅閱讀 6,705評論 3 110
  • 原文鏈接:https://segmentfault.com/a/1190000010832550 Ajax在前端開...
    一現_閱讀 335評論 0 0