Ajax 的基本使用

Ajax簡介

  • 一門異步的加載技術,局部刷新
  • 異步加載,能夠在不重載整個網頁的前提下,進行局部刷新
  • 分爲原生和JQ兩種

JSON數據格式

  • Json對象轉字符串: JSON.stringify()
  • 字符串轉Json對象:JSON.parse()
<script type="text/javascript">
    var obj = {"name": "JiYu", "age": "99"};
    //json數據 可讀可寫
    console.log(obj);
    console.log(typeof obj);
    console.log(obj.name);
    obj.name = "NianHua";
    console.log(obj);

    // json遍歷
    for (var key in obj) {
        console.log(key + ":" + obj[key])
    }

    // json對象轉字符串
    var obj_string = JSON.stringify(obj);
    console.log(obj_string);
    console.log(typeof obj_string);

    // 字符串對象轉json:鍵值對的引號必須是雙引號
    var obj_json = JSON.parse(obj_string);
    console.log(obj_json);
    console.log(typeof obj_json);
</script>


先後端數據交互

  • html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>先後端數據交互</title>
</head>
<body>
    <form action="/" method="post">
        用戶名:<input type="text" placeholder="請輸入用戶名" name="user"><br>
        密&emsp;碼:<input type="password" placeholder="請輸入密碼" name="pwd"><br>
        <input type="submit" value="提交"> <input type="reset" value="重置">
    </form>
</body>
</html>
  • py文件
import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("Demo.html")
    def post(self):
        user = self.get_argument("user")
        pwd = self.get_arguments("pwd")
        print("用戶名:",user)
        print("密碼:",pwd)


if __name__ == "__main__":
    # 路由
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(8888)
    tornado.ioloop.IOLoop.current().start()


Ajax局部刷新

  • 導入jquery
  • 使用方式
    • $.ajax({...})
    • $.get({...})
    • $.post({...})
  • html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ajax局部刷新</title>
</head>
<body>

<input type="text" name="a">+
<input type="text" name="b">=
<input type="text" name="c"><br>
<button id="btn">計算</button>

<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
    // 獲取元素
    var inp = $("input");
    var btn = $("#btn");
    btn.click(function () {
        // 獲取元素值
        var a = inp.eq(0).val();
        var b = inp.eq(1).val();
        // 方法一:ajax
        $.ajax({
            //get、post不用寫type
            'type': 'post',
            // 提交的地址
            'url': '/',
            // 傳給後臺的數據
            'data': {
                'aaa': a,
                'bbb': b
            },
            // 成功以後的回調函數
            'success': function (data1) {
                res = data1['result'];
                inp.eq(2).val(res);
            }
        })
        // 方法二:get
        // $.get({});
        // 方法三:post
        // $.post({});
    })
</script>
</body>
</html>
  • py文件
import tornado.ioloop
import tornado.web


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("Demo.html")

    def post(self):
        # 根據鍵取前臺傳來的值
        a = int(self.get_argument('aaa'))
        b = int(self.get_argument('bbb'))
        result = a + b
        return_data = {'result':result}
        # 返回數據
        self.write(return_data)


if __name__ == "__main__":
    # 路由
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(8888)
    tornado.ioloop.IOLoop.current().start()
相關文章
相關標籤/搜索