1.概念
百度百科:Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术
W3C:AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
AJAX 不是新的编程语言,而是一种使用现有标准的新方法
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
局部刷新、异步加载
2.使用场景:百度地图, 用户注册校验等
3.同步与异步
同步:发一次请求,需要等待服务器响应结束,然后才能发生第二次,每次刷新都是整个页面刷新
异步:发一次请求,无需等待服务器的响应,可以直接发送第二次请求。使用js来接收服务器响应,然后使用js进行局部刷新
4.优缺点
优点: 不需要插件、用户体检极佳、提示web程序的性能、减轻服务器和宽带的负担
缺点: 没有了前进后台功能
5.ajax简单使用
ajax核心对象:XMLHttpRequest
实现步骤:
第一步:创建XMLHttpRequest对象
第二步:打开与服务器的连接
第三步:发送请求
第四:处理响应
HTML页面js代码:
window.onload=function(){ ???????var but =document.getElementById("but"); ???????????but.onclick = ?function(){ ???????????//第一步(创建XMLHttpRequest对象) ???????????var xmlHR = new XMLHttpRequest(); ???????????// 第二步(打开与服务器的连接) ???????????var method = "get" ; ???????????var url ???= "/JQuery_demo2/ajax1.do?name=jack" ??; ???????????xmlHR.open(method, url); ???????????// 第三步(发送请求) ???????????xmlHR.send(); ???????????//第四步(处理响应) ???????????xmlHR.onreadystatechange = function(){ ???????????????if(xmlHR.readyState == 4){ ???????????????????if(xmlHR.status == 200){ ???????????????????????var text= xmlHR.responseText; ???????????????????????alert(text); ???????????????????}}}}}
服务器servlet代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????String method = request.getMethod(); ???????System.out.println("请求 ??????:" + method); ???????String name = request.getParameter("name"); ???????System.out.println("参数 ????:" + name); ???response.setContentType("text/html;charset=utf-8"); ???????PrintWriter out = response.getWriter(); ???????out.write("响应成功!"); ???????out.close(); ???}
4. jquery的ajax
①$.ajax(url,[settings])
最底层的ajax请求,功能是最完善的
<script type="text/javascript"> ???????$(function(){ ???????????$("input").click(function(){ ???????????????/* ???$.ajax(url,[settings]) ???????????????????$.ajax([settings]) ???????????????????settings参数 设置所有的参数 ???????????????????????url ????: 发送请求的地址 ???????????????????????data ???: 发送到服务器的数据,请求参数 ???????????????????????type ???:请求方式(get、post) ???????????????????????success ???:成功的回调函数 ????success(data, textStatus, jqXHR) ???????????????????????dataType:服务器返回的数据类型 ???????????????????????????"xml": 返回 XML 文档,可用 jQuery 处理。 ???????????????????????????"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。 ???????????????????????????"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。‘‘‘注意:‘‘‘在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载) ???????????????????????????"json": 返回 JSON 数据 。 ???????????????????????????"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。 ???????????????????????????"text": 返回纯文本字符串*/ ???????????????$.ajax({ ???????????????????"url" ?????????: "/JQuery_demo2/ajax2.do" , ???????????????????"data" ????????: {"username":"admin1","password":"123456"}, ???????????????????"type" ????????: "post", ???????????????????"dataType" ???: "text", ???????????????????"success" ???: ?function(data){ ???????????????????????alert(data); ???????????????????} ???????????????}); ???????????}) ???????}); ???</script>
②$.get(url,[data],[fn],[type])
以get发送请求
<script type="text/javascript"> ???????$(function(){ ???????????$("input").click(function(){ ???????????/* ???$.get() ???????????????格式 ?$.get(url,[data],[callback],[type]) ???????????????????参数: ???????????????????????url:待载入页面的URL地址 ???????????????????????data:待发送 Key/value 参数。 ???????????????????????callback:载入成功时回调函数。 ???????????????????????type:返回内容格式,xml, html, script, json, text, _default。 ???????????????????请求只能是get请求,不适合发送中文数据 ???????????*/ ???????????????$.get( ???????????????????"/JQuery_demo2/ajax2.do", ???????????????????{"username":"jack","password":"lovelucy"}, ???????????????????function(data){ ???????????????????????alert(data); ???????????????????}, ???????????????????"text" ???????????????) ???????????????}) ???????}); ???</script>
③$.post(url,[data],[fn],[type])
以post发送请求
<script type="text/javascript"> ???????$(function(){ ???????????$("input").click(function(){ ???????????/* ???$.post(url, [data], [callback], [type]) ???????????????????参数: ???????????????????????url:发送请求地址。 ???????????????????????data:待发送 Key/value 参数。 ???????????????????????callback:发送成功时回调函数。 ???????????????????????type:返回内容格式,xml, html, script, json, text, _default。 ???????????????????????发生post请求 ???????????*/ ???????????????$.post( ???????????????????"/JQuery_demo2/ajax2.do", ???????????????????{"username":"lucy","password":"lovetom"}, ???????????????????function(data){ ???????????????????????alert(data); ???????????????????}, ???????????????????"text" ???????????????) ???????????}) ???????}); ???</script>
Ajax简介
原文地址:https://www.cnblogs.com/jjqq0921/p/10193792.html