一、什么是ajax

ajax即异步JavaScript和XML,它是一种用于创建快速动态网页的技术。作用是通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

二、实现ajax基本步骤

  • 创建XMLHttpRequest对象,也就是创建一个异步调用对象.

  • 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

  • 设置响应HTTP请求状态变化的函数.

  • 发送HTTP请求.

  • 获取异步调用返回的数据.

  • 使用JavaScript和DOM实现局部刷新.

三、ajax实现方式

这里我们不做原生ajax的介绍,因为JQuery对ajax进行了封装。可以用少量的代码实现原生ajax的功能,同时又帮助我们解决了浏览器的兼容问题,没有道理不选它。

$.ajax是对ajax最基础的封装,来看一个简单例子

  1. $.ajax({  
        type : "post",  //提交方式  
        url : "${pageContext.request.contextPath}/del.action",//接口url
           data : {  
               "name" : "${name}"  //交互数据
           },
           success : function(result) {//返回数据根据结果进行相应的处理  
               if ( result.success ) {  
                     alert("删除成功");
               } else {  
                     alert("删除失败");
               }  
          }  
    });

关键参数介绍:

  • method   //数据的提交方式

  • url   //数据的提交url

  • async   //是否支持异步刷新,默认是true

  • data    //需要提交的数据

  • dataType   //服务器返回数据的类型,例如xml,String,Json等

  • success    //请求成功后的回调函数

  • error   //请求失败后的回调函数

四、常用请求类型介绍

  • multipart/form-data类型主要是上传文件时用到;

  • application/x-www-form-urlencoded类型主要是提交k-v时用到,当然这种方法也可以将json设置在v中提交json数据;

  • application/json类型主要是传递json数据用到,层次比较深的数据;

五、常见响应状态码介绍

  • 100:客户必须继续发出请求

  • 101:客户要求服务器根据请求转换HTTP协议版本

  • 200:请求成功

  • 201:提示知道新文件的URL

  • 202:接受和处理、但处理未完成

  • 203:返回信息不确定或不完整

  • 204:请求收到,但返回信息为空

  • 205:服务器完成了请求,用户代理必须复位当前已经浏览过的文件

  • 206:服务器已经完成了部分用户的GET请求

  • 300:请求的资源可在多处得到

  • 301:删除请求数据

  • 302:在其他地址发现了请求数据

  • 303:建议客户访问其他URL或访问方式

  • 304:客户端已经执行了GET,但文件未变化

  • 305:请求的资源必须从服务器指定的地址得到

  • 306:前一版本HTTP中使用的代码,现行版本中不再使用

  • 307:申明请求的资源临时性删除

  • 400:错误请求,如语法错误

  • 401:请求授权失败

  • 402:保留有效ChargeTo头响应

  • 403:请求不允许

  • 404:没有发现文件、查询或URl

  • 405:用户在Request-Line字段定义的方法不允许

  • 406:根据用户发送的Accept拖,请求资源不可访问

  • 407:类似401,用户必须首先在代理服务器上得到授权

  • 408:客户端没有在用户指定的时间内完成请求

  • 409:对当前资源状态,请求不能完成

  • 410:服务器上不再有此资源且无进一步的参考地址

  • 411:服务器拒绝用户定义的Content-Length属性请求

  • 412:一个或多个请求头字段在当前请求中错误

  • 413:请求的资源大于服务器允许的大小

  • 414:请求的资源URL长于服务器允许的长度

  • 415:请求资源不支持请求项目格式

  • 416:请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段

  • 417:服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求

  • 500:服务器产生内部错误

  • 501:服务器不支持请求的函数

  • 502:服务器暂时不可用,有时是为了防止发生系统过载

  • 503:服务器过载或暂停维修

  • 504:关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长

  • 505:服务器不支持或拒绝支请求头中指定的HTTP版本

对一些状态码要明白它的含义,可以帮助我们快速定位程序哪里可能出问题了,或者对不同的结果做详细的失败提示。

六、ajax的优点

  • 减轻服务器负担,按需要获得数据。

  • 无刷新更新页面,减少用户的实际和心理的等待时间。

  • 更好的用户体验。

  • 减轻宽带的负担。

七、ajax的缺点

  • ajax对浏览器的兼容性。

  • ajax局部刷新,所以浏览器的回退功能失效。

  • 对搜索引擎支持不友好。

ajax极简教程的更多相关文章

  1. Typora极简教程

    Typora极简教程 ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档.” ...

  2. CentOS安装使用.netcore极简教程(免费提供学习服务器)

    本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用. 仅针对CentOS,其它Linux系统类似,命令环节稍加调整: 需 ...

  3. Asky极简教程:零基础1小时学编程,已更新前8节

    Asky极简架构 开源Asky极简架构.超轻量级.高并发.水平扩展.微服务架构 <Asky极简教程:零基础1小时学编程>开源教程 零基础入门,从零开始全程演示,如何开发一个大型互联网系统, ...

  4. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  5. Nginx 极简教程(快速入门)

    作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4.  ...

  6. 【转】Typora极简教程

    Typora极简教程 Typora download ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转 ...

  7. nginx极简教程

    Nginx 极简教程 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. examples 目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快 ...

  8. NodeJS 极简教程 <1> NodeJS 特点 & 使用场景

    NodeJS 极简教程 <1> NodeJS 特点 & 使用场景 田浩 因为看开了所以才去较劲儿.   1. NodeJS是什么 1.1 Node.js is a JavaScri ...

  9. 自制 os 极简教程1:写一个操作系统有多难

    为什么叫极简教程呢?听我慢慢说 不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统.我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识.不论是为了 ...

随机推荐

  1. #2009. 「SCOI2015」小凸玩密室

    神仙题啊.完全想不出 首先看方案.可以从任意一个点开始,在这个点要先走完子树,然后走到父亲,再走兄弟,再走父亲的父亲,父亲的兄弟..一直走到1,1的另外一个子树,结束. 完全不会鸭.jpg 设f[i] ...

  2. [webapp]移动平台各浏览器的分辨率适配

    搞webapp适配了N多浏览器,记一下各浏览器碰到的需要注意的地方. 目前发现firefox是最难适配的. 1.firefox只有在onload之后才能取到正确的innerwidth值. 2.目前版本 ...

  3. 程序员 vs HR(皮这么一下很开心)

    最近网络上一段 HR VS 程序员 的表情包火了 来来来 我们近距离感受下 来源|网络:http://t.cn/RuTKC8B 哈哈哈!大家可以留言说说你们面试时候的趣事 更多内容关注公众号:51re ...

  4. xshell提示评估过期怎么办?

    刚刚打开xshell准备连上虚拟机写代码,结果提示评估过期,真的很气,在百度上找了好久才找到解决办法,现在分享给大家:. 1.复制这个链接在浏览器打开https://www.netsarang.com ...

  5. tomcat 在liunx中shutdown后进程仍然存在的两种实用解决办法

    方法一: 查找tomcat进程并kill ps -elf | grep ${ctompath} | grep -v grep | awk '{print $4}' | xargs kill -9 此处 ...

  6. [环境配置]Ubuntu 16.04+CUDA 9.0+OpenCV 3.2.0下编译基于Caffe的MobileNet-SSD踩过的一些坑

    SSD是Caffe的一个分支,源码在github上:https://github.com/weiliu89/caffe/tree/ssd $ git clone https://github.com/ ...

  7. EventBus的基本使用步骤

    为什么要使用EventBus 当我们进行项目开发的时候,往往是需要应用程序的各组件间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI, 通常两个Activit ...

  8. PHPCMS 栏目添加字段和修改描述textarea变成fceditor编辑器

    一.添加字段方法: 1. 添加数据库字段:description1,添加位置:v9_catetory表 找到phpcms/moudles/admin/templates/category_add.tp ...

  9. 私有云搭建:树莓派+kodexplorer可道云,几步搞定!

    目前蒲公英异地组网则是推出了树莓派1.0软件客户端.无需公网IP!简单60秒设置!轻松远程访问树莓派!实现远程登录.远程配置.远程访问服务.传输数据等等操作.例如:蒲公英树莓派1.0软件客户端+可道云 ...

  10. [shell] bash数组(for时排序)

    for处理时会自动把顺序按A-Z排序了 [root@XM-v106 ~]# bash b.sh A -> B -> C -> D -> E -> [root@XM-v10 ...