AJAX 概述

百度百科 它是這么 描述滴 !

Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML)绝骚,是指一種創(chuàng)建交互式腾啥、快速動態(tài)網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),無需重新加載整個網(wǎng)頁的情況下戏蔑,能夠更新部分網(wǎng)頁的技術(shù)假栓。

通過在后臺與服務(wù)器進行少量數(shù)據(jù)交換年鸳,Ajax 可以使網(wǎng)頁實現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新俯在。

注意 哦 : ----Ajax 不是一種新的編程語言竟秫,而是一種用于創(chuàng)建更好更快以及交互性更強的Web應(yīng)用程序的技術(shù)。

主要優(yōu)缺點

使用Ajax的最大優(yōu)點朝巫,就是能在不更新整個頁面的前提下維護數(shù)據(jù)鸿摇。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變的信息劈猿。

Ajax不需要任何瀏覽器插件拙吉,但需要用戶允許JavaScript在瀏覽器上執(zhí)行

實例說話

GET 請求檢查用戶名是否存在

image-20200612184320448.png
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Get</title>
    <script src="/static/jQuery-1.11/jquery-1.11.3.js"></script><script>
    $(function () {
        // blur --> 當元素失去焦點時發(fā)生 blur 事件揪荣。
//blur() 函數(shù)觸發(fā) blur 事件筷黔,或者如果設(shè)置了 function 參數(shù),該函數(shù)也可規(guī)定當發(fā)生 blur 事件時執(zhí)行的代碼仗颈。
       $('#username').blur(function () {
           console.log(this);
           var username=$(this).val();
           console.log(username);
           //發(fā)送AJAX 請求  使用 get 方法
            $.get('/check_username.do','username='+username,function (data) {
                console.log(data);
                console.log(data.msg);
                console.log(data.success);

                $('#result').html(data.msg).css('color',data.success?'green':'red');
                // if(data.success){
                //     $('#result').css('color','green');
                // }else{
                //     $('#result').css('color','red');
                // }
            })
       })
    })
    </script>
</head>
<body>
<span id="result"></span></br>
<input type="text" id="username" placeholder="用戶名">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Get</title>
    <script src="/static/jQuery-1.11/jquery-1.11.3.js"></script><script>
    $(function () {
        
       $('#username').blur(function () {
           var username=$(this).val();
           $.get('/check_username.do','username='+username,function (data) {           
                $('#result').html(data.msg).css('color',data.success?'green':'red');   
                
            })
       })
    })
    </script>
</head>
<body>
<span id="result"></span></br>
<input type="text" id="username" placeholder="用戶名">
</body>
</html>
@RequestMapping("/check_username")
    @ResponseBody //加了 這個 就不是跳轉(zhuǎn)的意思 哦  注意
    public JsonResult get(String username){
        if("666".equals(username)){
            return new JsonResult(false,"用戶名已被注冊");
        }else {
            return new JsonResult(true,"可以注冊");
        }
    }

POST 請求用戶登錄操作

image-20200612184212294.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Post</title>
    <script src="/static/jQuery-1.11/jquery-1.11.3.js"></script>
    <script>
        $(function () {
            $('#login').click(function () {
                console.log($('#username').val());
                var username = ($('#username').val());
                var password = ($('#password').val());
                var param = {username: username, password: password}
                $.post('/loginJson.do', param, function (data) {
                    if (data.success) {
                        location.
                    } else {
                        $('#result').html(data.msg).css('color', red)
                    }
                });
            })
        })
    </script>
</head>
<body>
<span id="result"></span></br>
<input id="username" placeholder="請輸入用戶名" type="text"/><br>
<input id="password" placeholder="請輸入密碼" type="text"/><br>
<button id="login">登錄</button>
</body>
</html>
@RequestMapping("/loginJson")
    @ResponseBody //加了 這個 就不是跳轉(zhuǎn)的意思 哦  注意
    public JsonResult post(String username,String password){
        if("666".equals(username) && "6666".equals(password)){
            return new JsonResult(true,"登陸成功");
        }else {
            return new JsonResult(false,"登錄失敗");
        }
    }

二級聯(lián)動

image-20200612184057501.png

@RequestMapping("/provinces")
    @ResponseBody //加了 這個 就不是跳轉(zhuǎn)的意思 哦  注意
    public List<Province> provinces(){
        return Province.getAllProvince();
    }

    @RequestMapping("/cities")
    @ResponseBody //加了 這個 就不是跳轉(zhuǎn)的意思 哦  注意
    public List<City> cities(Long pid){
        return City.getCityByProvinceId(pid);
    }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>省份和城市下拉框</title>
    <script src="/static/jQuery-1.11/jquery-1.11.3.js"></script>
    <script>
        $(function () {
            //優(yōu)化下

            var $p = $('#p')
            var $c = $('#c')

            $.get('/provinces.do', function (data) {
                //console.log(data)
                data.forEach(function (value) {
                    console.log(value)
                    console.log(value.id)
                    console.log(value.name)
                    $p.append('<option value="' + value.id + '">' + value.name + '</option>')
                })
            })
            $p.change(function () {
                var pid = $(this).val()  //獲取被選中的 option value 屬性值
                $c.empty();
                $c.append('<option value="-1">請選擇</option>')

                if (pid > 0) {//節(jié)省數(shù)據(jù)庫性能  不會 '請選擇' 也重新發(fā)起請求
                    $.get('/cities.do', 'pid=' + pid, function (data) {
                        data.forEach(function (value) {
                            $('#c').append('<option value=" ' + value.id + ' ">' + value.name + '</option>')
                        })
                    })
                }
            })
        })
    </script>
</head>
<body>
省份 : <select id="p">
    <option value="-1">請選擇</option>
</select>
城市 : <select id="c">
    <option value="-1">請選擇</option>
</select>
</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佛舱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挨决,更是在濱河造成了極大的恐慌请祖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脖祈,死亡現(xiàn)場離奇詭異肆捕,居然都是意外死亡,警方通過查閱死者的電腦和手機盖高,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門慎陵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喻奥,你說我怎么就攤上這事席纽。” “怎么了撞蚕?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵润梯,是天一觀的道長。 經(jīng)常有香客問我诈豌,道長仆救,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任矫渔,我火速辦了婚禮彤蔽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庙洼。我一直安慰自己顿痪,他們只是感情好镊辕,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚁袭,像睡著了一般征懈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揩悄,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天卖哎,我揣著相機與錄音,去河邊找鬼删性。 笑死亏娜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蹬挺。 我是一名探鬼主播维贺,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼巴帮!你這毒婦竟也來了溯泣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤榕茧,失蹤者是張志新(化名)和其女友劉穎垃沦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體用押,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡栏尚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了只恨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡抬虽,死狀恐怖官觅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阐污,我是刑警寧澤休涤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站笛辟,受9級特大地震影響功氨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜手幢,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一捷凄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧围来,春花似錦跺涤、人聲如沸匈睁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽航唆。三九已至,卻和暖如春院刁,著一層夾襖步出監(jiān)牢的瞬間糯钙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工退腥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留任岸,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓阅虫,卻偏偏與公主長得像演闭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颓帝,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361