> 웹 프론트엔드 > 프런트엔드 Q&A > 상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

WBOY
풀어 주다: 2021-12-28 19:17:23
앞으로
1354명이 탐색했습니다.

이 기사는 json, 전면 및 후면 상호 작용 등을 포함하여 ajax에 대한 관련 지식을 제공합니다. 모든 사람에게 도움이 되기를 바랍니다.

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

1부: JSON 소개

nbsp;html>
    <meta>
    <title>JSON</title><script>
    //定义一个JSON对象
    var obj = {
        "class":"数据结构",
        "name":66,
        "student":65
    };

    //可读性
    console.log(obj);
    console.log(obj.class);
    // 可写行
    obj.student = "学生真棒";
    console.log(obj.student);

    console.log(typeof obj);        //object  是一个json对象

    // JSON遍历
    for(var key in obj){
        console.log(key + ":" + obj[key]);
    }

    // JSON对象转字符串
    var obj1 = JSON.stringify(obj);
    console.log(typeof obj1);       //string
    // 字符串转JSON对象
    var obj2 = JSON.parse(obj1);
    console.log(typeof obj2);       //object</script>
로그인 후 복사

효과 표시:

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

2부: 앞뒤 상호 작용

1은 다음과 같습니다.

(1) 프런트엔드 및 백엔드 상호 작용을 위해 양식에 name 속성을 사용하세요.

One:

팁:

import tornado.web
소스 코드 보기: 26-38행은 tornado 버전입니다. 안녕하세요 세상, 그냥 받아서 바꾸세요 ~

HTML 코드:

nbsp;html>
    <meta>
    <title>前后交互--form表单</title>
로그인 후 복사

                用户名:
    密 码:
    
Python 코드:

import tornado.webimport tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("Ajax_form.html")           #需要进行前后交互的HTML文件的路径
        
    def post(self, *args, **kwargs):        #此处的用post还是get取决于HTML文件中form表单的method属性(二者一样)
        #通过打印在控制台进行查看,有没有成功从前端拿到信息
        print(self.get_argument("user"))    #.get_argument()拿到的是单个的参数,里面参数是form表单里name属性的属性值。
        print(self.get_argument("pwd"))
        self.write("提交成功!")            if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),             #需要和form表单里的action一致。
    ])
    application.listen(8888)             #端口号   
    tornado.ioloop.IOLoop.current().start()
로그인 후 복사

확장:

오류가 보고되는 경우: NotImplementedError
이 문서 읽기: https://blog.csdn.net /hank5658/article/details/106870245

구현 방법:

먼저: .py 파일을 실행합니다.

오류가 보고되지 않으면 HTML 파일을 실행합니다.
그런 다음 프런트 엔드 인터페이스의 주소 표시줄을 다음으로 변경합니다. 127.0.0.1:8888 을 입력하고 Enter를 누르세요
오류가 보고되지 않으면 전달이 성공한 것입니다.
마지막으로 사용자 이름과 비밀번호를 입력하고 제출 버튼을 클릭하면 pycharm 콘솔에 사용자 이름과 비밀번호가 표시됩니다.

효과 표시:

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

(2) 프론트엔드와 백엔드 상호작용에 AJAX를 사용하세요

  1. Ajax 기능?

    프런트엔드 및 백엔드 상호 작용(기존 상호 작용 모드)에 양식 양식을 사용하면 제출 시 전체 페이지가 새로 고쳐집니다.
    AJAX를 사용하여
    비동기 로딩을 수행하면 전체 페이지를 다시 로드하지 않고도 부분 새로 고침을 수행할 수 있습니다.

  2. Ajax란 무엇인가요?

    전체 이름은 Ansync JavaScript 및 XML이며 부분 새로 고침이 가능한 비동기 로딩 기술입니다.

  3. Ajax를 사용하는 방법은 무엇입니까?

    Ajax의 용도는 Native와 JQ(Jquery) 두 가지로 나누어집니다. 네이티브는 그다지 유용하지 않으므로 아래에서 JQ에 대해 이야기해 보겠습니다.

(1) JQ 버전의 Ajax:

python 코드:

import tornado.webimport tornado.ioloopimport tornado.webclass MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("ajax_jquery.html")

    def post(self, *args, **kwargs):
        aaa = int(self.get_argument("aa"))
        bbb = int(self.get_argument("bb"))
        c = aaa + bbb        # 将后台处理过后的前端的数据回显到前端
        return_data = {"result":c}             #将需要传输的数据构造成JSON对象
        self.write(return_data)                #将后台需要传递给前端的数据回显给前端if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(8880)             #端口号
    tornado.ioloop.IOLoop.current().start()
로그인 후 복사

위에서 언급한 오류가 보고되면 다음 코드를 추가합니다.

# windows 系统下 tornado 使用 SelectorEventLoopimport platformif platform.system() == "Windows":
    import asyncio

    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
로그인 후 복사
HTML 코드:

nbsp;html>
    <meta>
    <title>Ajax_jquery</title><h1>AJAX + JQUERY 实现前后交互</h1><input>+<input>=<input><button>计算</button><script></script>   <!--要用网址引用--><script>
    // 获取元素
    var ipt = $("input");
    var btn = $("#btn1");
    btn.click(function () {
        // 获取值
        var a = ipt.eq(0).val();        //eq是获取下标对应的标签;val()是得到该标签内用户输入的值
        var b = ipt.eq(1).val();
        // 使用JQ里面封装好的Ajax方法将前端的数据传输给后端
        $.ajax({
            "type":"post",   //数据传输的方式:post,get            "url":"/",       //提交的路径            "data":{         //键值对形式    传输的数据(需要传输到后台的数据)                "aa":a,
                "bb":b            },
            // 前后端成功之后的回调函数success   Ajax请求发送成功后,自动执行此函数            "success":function (data2) {        //callback==服务器write的数据
                x = data2["result"];
                ipt.eq(2).val(x);       //将回显的数据放进前端指定的位置            },
            // 失败之后的回调函数            "error":function (error) {
                console.log(error);
            }
        })
    })</script>
로그인 후 복사

대략 말하면 동기화 및 비동기성:

동기화: 서버에 요청을 보낸 후 두 번째 요청을 보내기 전에 서버 응답이 완료될 때까지 기다려야 합니다. 서버 응답이 끝날 때까지 기다리지 않고 다른 요청을 보내면 지연이 발생합니다.

비동기식: 서버에 요청을 보낸 후 서로 간섭하지 않고 직접 다른 요청을 보낼 수 있습니다. 부분 새로 고침이 가능합니다.

효과 표시:

상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.

[관련 튜토리얼 권장 사항:

AJAX 비디오 튜토리얼]

위 내용은 상호작용 전후 Ajax의 핵심을 간단히 말씀드리겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿