jiyu-hlzy

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()




分类:

技术点:

相关文章:

  • 2021-04-12
  • 2021-12-03
  • 2021-11-13
  • 2021-11-03
  • 2021-12-26
  • 2021-09-11
  • 2021-12-08
猜你喜欢
  • 2022-02-13
  • 2021-06-16
  • 2021-12-17
  • 2021-11-28
  • 2022-02-07
  • 2021-11-20
  • 2021-10-14
相关资源
相似解决方案