ajax範例&教學

簡單介紹:

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

AJAX 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。

AJAX 是一種用於創建快速動態網頁的技術。

AJAX 最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據並更新部分網頁內容。

AJAX 不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執行。

要使用時,請先學會html

教學:

設定:

呼叫模式 : type :”GET”

呼叫的網址: url : “(目標網址)”

要傳遞的資料:data:{格式=> 參數名稱:內容}

回傳的資料型態:dataType:text or json,xml…

成功時回傳執行:success :function(data){}

失敗時執行:error:function(data){}

等待資料返回時: beforeSend :function(){}

超過等待的時間: timeout :10000

請求完成(不論成功失敗):complete :function(){}

資料抓取模式(預設非同步): async : false or true

範例1

$.ajax({
        type :"GET",//呼叫模式
        url  : "/test/test1.php",//呼叫的網址
        data : { //這裡發送要傳遞的資料,格式=> 參數名稱:內容
                datafromtestFile : "test",                            
               },
        dataType: "text",//回傳的資料型態
        success : function(happy) {
                 $("#output").html(happy);                            
        }
    })

範例2

 $.ajax({ 
        url:url, 
        type:'post', 
        data:{'type':"type",
             'moneyCount':moneyCount,
             'shoplen':shoplen}, 
        timeout:15000, 
        beforeSend:function(){
            $("#wait").html("請稍後"); 
        }, 
        success:function(data){
            //請求成功程式碼......
        },
        complete:function(data){
            $("#doing").empty(); 
        }, 
        error:function(data){
            //請求失敗程式碼......
        } 
    }); 

小叮嚀

當 async :false時,會等待前一個請求結束才會進行下一個

當 async :true時//預設,會吃server的資源,呼叫100次(0.3S)會比呼叫1(0.03S)次來的稍為慢一點點,這部分還是要看server的效能

如果有做出 “loading讀取中”的效果,使用者會比較願意等待,可以用beforeSend來做,等待圖點此

beforeSend:function(){$('#wait_div').html('<img src="https://media.giphy.com/media/3oEjI6SIIHBdRxXI40/giphy.gif">');}

參考: https://www.runoob.com/ajax/ajax-tutorial.html