【原创】Ajax的用法总结

一、什么是Ajax

Ajax英文全称为“ Asynchr JavsScript and XML”(异步的JavaScript和XML),是一种创建

交互式网页的开发技术。

二、Ajax技术的核心

Ajax是一系列相关技术的融合,其核心包括XMLHttpRequest、JavsScript和DOM技术,数据格式

的不同可能会用到Json或者XML的技术。

XMLHttpRequest是它的核心的内容,它能够为页面中的JavaScript脚本提供特定的通信方式,

从而使页面的javascript脚本和服务器之间形成动态交互的效果,XMLHTTPRequest的最大的优点

是页面内的javascript脚本可以不用刷新页面,而直接和服务器发生交互,从而实现页面无刷新的效果。

三、XMLHttpRequest方法属性描述

1、方法描述

abort()停止当前请求

getAllResponseHeaders()把HTTP请求的所有响应首部作为键/值对返回

getResponseHeader("header")返回指定首部的串值

open("method","URL",[asyncFlag],["userName"],["password"])建立对服务器的调用。method参数可以是GET、POST或PUT。

url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数,是否异步,用户名,密码

send(content)向服务器发送请求

setRequestHeader("header", "value")把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。

设置header并和请求一起发送 ('post'方法一定要 )

XMLHttpRequest 对象属性描述

2、方法描述

onreadystatechange状态改变的事件触发器,每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数

readyState请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成

responseText服务器的响应,返回数据的文本。

responseXML服务器的响应,返回数据的兼容DOM的XML文档对象 ,这个对象可以解析为一个DOM对象。

responseBody服务器返回的主题(非文本格式)

responseStream服务器返回的数据流

status服务器的HTTP状态码(如:404 = "文件末找到" 、200 ="成功" ,等等)

statusText服务器返回的状态文本信息 ,HTTP状态码的相应文本(OK或Not Found(未找到)等等)

四、Ajax工作原理原理

AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器相应异步化。并不是所有的用户请求

都提交给服务器,像一些数据验证和数据处理等都交给AJAX引擎自己来做,只有确定需要从服务器读取新数据时再由

AJAX引擎代为向服务器提交请求。如图:

4418040-27b959cbd9d11a26

五、Ajax的优点

1、减轻服务器的负担,提升了网站的性能。

2、无刷新更新页面,减少了用户等待网站加载的时间。

3、用户体验更加友好,可以避免出现白屏的情况。

4、Ajax是基于标准化并且广泛使用的技术几乎所有的主流浏览器都支持该技术,ye不需要单独安装插件。

5、Ajax可以使Web中的页面和应用分离,便于分工合作。

六、Ajax缺点

1、对于移动设备不能很好的支持。

2、Ajax干掉了back按钮,即对浏览器后退机制的破坏。

3、安全问题。比如:跨站点脚步攻击、SQL注入攻击和基于credentials的安全漏洞等。

4、对搜索引擎的支持比较弱。

5、破坏了程序的异常机制。至少从目前看来,像ajax.dll,ajaxpro.dll这些ajax框架是会破坏程序的异常机制的。

造成调试的困难。

七、使用原则

1、Ajax适用场景

表单驱动的交互

深层次的树的导航

快速的用户与用户间的交流响应

类似投票、yes/no等无关痛痒的场景

对数据进行过滤和操纵相关数据的场景

普通的文本输入提示和自动完成的场景

2、Ajax不适用场景

部分简单的表单

搜索

基本的导航

替换大量的文本

对呈现的操纵

八、原生AJAX写法

var XHR=null;

if (window.XMLHttpRequest) {

// 非IE内核

XHR = new XMLHttpRequest();

} else if (window.ActiveXObject) {

// IE内核,这里早期IE的版本写法不同,具体可以查询下

XHR = new ActiveXObject("Microsoft.XMLHTTP");

} else {

XHR = null;

}

if(XHR){

XHR.open("GET", "ajaxServer.action");

XHR.onreadystatechange = function () {

// readyState值说明

// 0,初始化,XHR对象已经创建,还未执行open

// 1,载入,已经调用open方法,但是还没发送请求

// 2,载入完成,请求已经发送完成

// 3,交互,可以接收到部分数据

// status值说明

// 200:成功

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

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

if (XHR.readyState == 4 && XHR.status == 200) {

// 这里可以对返回的内容做处理

// 一般会返回JSON或XML数据格式

console.log(XHR.responseText);

// 主动释放,JS本身也会回收的

XHR = null;

}

};

XHR.send();

}

公众号原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.Net生命周期的详解

一.Asp.Net页面生命周期的概念当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端IIS)发送一个request请求,服务器就会判断发送过来的请求页面,当完全识别 TTP页面处理程序类后,A…

指针的概念

在C语言中,内存单元的地址称为指针,专门用来存放地址的变量,有时对地址,指针和指针变量不区分,统称指针。(地址指针) 一般情况下,最前面的存储类型通常会省略 指针在说明的同时&…

Net中Session的用法

一、什么是Session?简单来说,就是用户与网站服务器建立的一个连接,服务器分配给一个编号。当一台WWW服务器运行时,可能有若干用户正在浏览运行在这台服务器上的网站。当用户首次与这台WWW服务器创建连接的时候,它就和这…

Linq用法笔记

一、什么是Linq?LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。LINQ是一种用来进行数据访问的编程模型,Linq可以用相同的语法访问不同的数据源,比如xml、数…

用例图练习

转载于:https://www.cnblogs.com/fzuyzy/p/4925246.html

java 常量 内存分配_Java内存分配之堆、栈和常量池

寄存器:最快的存储区,位于不同于其他存储区的地方——处理器内部。寄存器的数量极其有限,所以寄存器由编译器根据需求 进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。栈:存放基本类型的数据和对…

sqlserver2008r2安装

转载于:https://www.cnblogs.com/sprinng/p/4932739.html

后台寻路系统的大体思路与流程

总的思路就是: 1, 通过前台unity的navigation的的接口: 获得顶点和三角形集合数据 2, 将前台的mesh数据转换成标准的obj格式数据 3. 强obj mesh数据经过一系列转换和优化, 生成recastnavigation插件寻路模块detour需要的导航数据 故制作了工具MakeNavmeshData生成detour需要的…

Eclipse is running in a JRE, but a JDK is required 解决方法(转)

转自:http://comeonbabye.iteye.com/blog/1186239 安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is requiredSome Maven plugins may not work when importing projects or updating source folders. 分两步解决问题: 1. 检查Eclipse正…

收集一些优秀的DoNet开源项目

Paste_Image.pngJson.NEThttp://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基…

OkHttp 上手

OkHttp 上手 优点 快、节省带宽。支持 HTTP/2 和 SPDY。HTTP/2 和 SPDY 允许对同一个主机的所有请求,使用一个 socket。如果不支持 SPDY 的话,可以用连接池减少请求等待时间。GZIP 缩小传输大小。缓存响应(response ca…

你的工作是为了你自己!

1、无论为谁打工,要为自己学东西,客观为公司创造价值。我自己当年,无论我在方正给国内企业工作,还是我在雅虎给外国人工作,我都跟别人最大的不一样,我从来不觉得我在给他们打工,我真的可能是很有…

别去取悦,心里没你的人

鞋子不合适不必硬塞,否则磨了自己的脚;不必讨好心里没你的人,不在乎你的人,你付出再多,也打动不了他。讨好心里没你的人,会让自己很累很累;总是迁就他,总是围着他转,最后…

tensorflow java 加速_Tensorflow使用GPU加速

测试faster-rcnn时,cpu计算速度较慢,调整代码改为gpu加速运算将 with tf.Session() as sess: 替换为1 gpu_options tf.GPUOptions(per_process_gpu_memory_fraction0.9)2 with tf.Session(configtf.ConfigProto(gpu_optionsgpu_options,log_device_plac…

java中策略设计模式_Java中的设计模式(五):策略模式

策略设计模式是行为设计模式之一。当我们为特定任务使用多个算法时,使用策略模式,客户端决定在运行时使用的实际实现。策略模式的最佳示例之一是Collections.sort()采用Comparator参数的方法。基于Comparator接口的不同实现,对象将以不同的方…

光学基础知识:白光、颜色混合、RGB、色彩空间

1665年,牛顿(Isaac Newton)进行了太阳光实验,让太阳光通过窗板的小圆孔照射在玻璃三角棱镜上,光束在棱镜中折射后,扩散为一个连续的彩虹颜色带,牛顿称之为光谱,表示连续的可见光谱。而可见光谱只是所有电磁…

SQL Server各个版本功能比较

微软的SQlserver主要经历了从sql server 2000 到最新的sql server 2017,现把各个版本的更新特性介绍如下:SQL SERVER 2000日志传送索引视图SQL SERVER 2005数据库镜像(只有 SQL Server 2005 Enterprise Edition SP1 和更高版本支持异步数据库…

java hibernate的使用_《Hibernate快速开始 – 4 – 使用JAVA持久层 API (JPA)教程》

章节目标使用JPA EntityManagerFactory使用注解提供映射信息使用 JPA 接口本教程可在 entitymanger/ 路径下下载4.1. persistence.xml之前的章节使用了hibernate原生的配置文件hibernate.cfg.xml。然而,JPA中定义了不同的的自助配置文件persistence.xml。这个启动过…

父类与子类之间的关系

1) 运行课件中的例题ParentChildTest.java,回答下列问题: a) 左边的程序运行结果是什么? b) 你如何解释会得到这样的输出? 第一个创建一个Parent对象,调用的是父类构造方法 第二个创建一个Child对象,调用的…

13条只有程序员才能懂的内涵段子

一、bug跟蚊子的相似之处:1、不知道藏在哪里。2、不知道有多少。3、总是在你即将睡觉休息的时候出现。二、A:最近在看《一拳超人》,觉得咱们程序猿跟埼玉老师有点像啊!B:哪里像了?A:越秃越强&am…