• AJAX的使用


    AJAX

    Asynchronous JavaScript And Xml :异步JS和XML

    同步请求:指传统的在浏览器地址栏输入URL.点超链接.表单提交.发送的都是同步请求.
    RIA : Rich Internet application:富 Internet应用. RIA技术有很多种,每个公司都有自己的RIA技术,AJAX只是其中一种.
    也是应用最广最受欢迎的一种,主要是成本低.

    异步:在不刷新当前页面的情况下,从当前页面的后台发送请求给服务器,并在后台接受响应并跟新当前页面的不部分
    而不是全部,这样可以使用户在页面上的操作变的连惯,从而实现更丰富的页面效果,提升用户体验.

    AJAX核心:浏览器从后台发送请求节后响应的能力.(最早是在2005年在IE浏览器首次引入了RIA引擎),是一个
    XMLHttpRequest的内置对象(此对象属于浏览器).

    如果使用:AJAX(GET):

    获取XMLHttpRequest对象: var req = new XMLHttpRequest();

    req.open(); //设置发送异步请求的参数
    req.send(); //发送异步请求
    req.onreadystatechange 时间绑定处理函数
    在处理函数中判断req.readyState属性的值是否为4
    4是正常接收响应信息完成(1 开始发送 2 发送完毕 3 开始接收)
    判断req.status是否是200(req.status是HTTP的状态码)
    进行处理,得到响应数据: req.responseText

    POST方式:

    发送异步请求时,如果使用POST方式
    要提交的请求不能放在URL中,而是把查询字符串放到send方法中
    在调用send发送之前,需要设置请求头.否则异步请求可以发送,但提交的参数无法发送到服务器.

    在早期的AJAX中,使用XML格式来在服务器和浏览器之间传递数据的,所以一种更轻量化的数据格式来
    替代XML.(JSON)


    如何使用jQuery操作AJAX

    导入jQuery
    $( function(){ }) ;
    $.get( url , params, function(){} , type)
    url:字符串,请求发送的目标URL( 项目名称/XML文件中配置的Servlet地址)
    params:
    QueryString : ' username = admin & password = 123'
    JSON对象:{ username:' admin ' : passwrod : ' 123 ' }

    function(data){}: 回掉函数,当响应正常接收完成后调用此函数,响应信息当成参数传入此函数
    响应信息的类型 : XML/html/script/json/text/_default

    案例一:用户注册时提示用户名是否可用

    需求分析:在用户注册的界面中,当用户填写完用户名之后,在用户名的输入框后面提示用户名是否可用.

    技术分析:当用户输完用户名,需要发送异步请求的触发事件:
    onblur:输入框失去焦点事件
    onchange:当内容发生改变的事件

    步骤分析:
    创建一个注册页面,给用户名的输入框绑定onchange事件
    当事件发生时,使用异步请求把用户当前输入的用户名提交到UserServlet.checkUsername
    在UserServlet.checkUsername中,接受请求得到用户名
    调用业务逻辑,检查用户是否存在于数据库中
    返回结果(异步响应)

    GoogleSuggest
    需求分析:提交一个类似于百度的页面,当用户在输入框中输入内容时,随着内容的变化,输入框的下面
    提示相关的关键字.输入中文.拼音.拼音简写都可以.

    技术分析:
    绑定事件: keypress/keyup事件
    查询:数据库中保存的关键字必须有中文,拼音和拼音简写
    响应:老式的AJAX使用XML做为数据传递的格式.但是XML太重,所以改用一种轻量级的数据格式
    JSON
    JSON:一种用字符串的形式表式数据的格式(语言无关),它是一个Map.
    对象:{ key:value , key:value,..... key:{key2:value2} ,}
    集合:[ {} ,{} ,{} ]
    如何把服务器中的集合,转换成JSON的字符串,发回给浏览器(json-lib工具)
    JSONObject.fromObject(obj).toString()
    JSONArray.fromObject(obj).toString()

    步骤分析:
    1.创建一个页面,页面中有一个文件输入框和一个按钮,输入框响应keyup事件
    2.当keyup事件发生时,发送一个异步请求到服务器,并提交输入框中当前的内容
    3.接受请求,得到提交的关键字
    4.调用业务逻辑,取得和关键字相关的所有提示项
    5.把所有的提示想的集合转换成JSON,发回给浏览器
    6.浏览器发送完异步请求之后的回调函数中接收响应信息(data)
    7.遍历集合data集合,把其中的对象和关键字显示到输出框下面.


    AJAX
    异步JS与XML

    作用:不离开当前页面从浏览器后台发请求给服务器,从后台接受响应信息,更新当前页面的一部分,而不是
    全部,(整个页面不会发生加载事件)
    核心:XMLHttpRequest内置对象(浏览器提供的)

    使用方式:
    var req=new XMLHttpRequest();
    req.open(); //设置发送异步请求的参数
    req.send() //发送
    req.onreadystatechange//事件绑定函数进行响应的处理
    req.readyState值为4时,说明响应内容接收完成
    req.status属性值是否为200(正常)
    req.responseTest属性是响应的内容

    jQuery框架操作AJAX的方式

    $.get/$post(url,params,function(data){},type)

    url:地址
    params:
    查询字符串: ' username=admin & password=123 '
    JSON对象:{ username:' admin ' , password : ' 123 ' ,salary:200 }
    回调函数:当响应正常接收完成后调用的函数,此函数接收一个参数.
    名字随意,一般是data.就是响应的内容
    type:返回值得类型(json/text)
    JSON:轻量级的数据格式(语言无关)
    对象:{ key:value.key:value,key2:{key21:value21,key22:value22} }
    集合:[ {},{},{} ]
    json-lib
    JSONObject.fromObject(obj).toString()
    JSONArray.formObject(collection),toString()


    SQL语句:
    select * from tb_keyword where chineseword like ‘%key%’ or pinyin like ‘%key%’ or jianxie like ‘%key%’;

    CREATE TABLE tb_keyword(
    id VARCHAR(32) PRIMARY KEY,
    chineseword VARCHAR(30),
    pinyin VARCHAR(30),
    jianxie VARCHAR(30)
    );
    INSERT INTO tb_keyword VALUES('k001','三国演义','sanguoyanyi','sgyy');
    INSERT INTO tb_keyword VALUES('k002','三国志','sanguozhi','sgz');
    INSERT INTO tb_keyword VALUES('k003','三国杀','sanguosha','sgs');
    INSERT INTO tb_keyword VALUES('k004','三毛流浪记','sanmaoliulangji','smllj');
    INSERT INTO tb_keyword VALUES('k005','宫心计','gongxinji','gxj');
    INSERT INTO tb_keyword VALUES('k006','西游记','xiyouji','xyj');
    INSERT INTO tb_keyword VALUES('k007','宫锁心玉','gongsuoxinyu','gsxy');

  • 相关阅读:
    playbook运行时传参方式
    playbook中判断OS发行版本
    前端https请求到A,A将该https请求转发的B
    Kubernetes编排原理(四)
    华为笔试题总结
    反射学习笔记
    Spring学习笔记(1)
    Spring学习笔记(2)
    [luogu8293]序列变换
    [uoj728]坏掉的设备2
  • 原文地址:https://www.cnblogs.com/jia-/p/7450042.html
Copyright © 2020-2023  润新知