分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Ajax简介

发布时间:2023-09-06 02:28责任编辑:沈小雨关键词:Ajax

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>
View Code

②$.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>
View Code

③$.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>
View Code

Ajax简介

原文地址:https://www.cnblogs.com/jjqq0921/p/10193792.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved