今日学习Ajax

AJAX = Asynchronous JavaScript and XML(异步的JavaScript和XML)。

同步与异步的区别

同步的理解:

同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;

同步就相当于是当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户使用起来会有不友好。

异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

异步就相当于当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。

同步是阻塞模式,异步是非阻塞模式

AJAX是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页〔不使用AJAX〕如果需要更新内容,必需重载整个网页面。

XML可扩展标记语言。XML被设计用来传输和存储数据。XML和HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标签,全都是自定义标签,用来表示一些数据。

以前Ajax是用XMIL格式的字符串进行数据交换。现在已经被JSON取代了。

Ajax特点:

优点:

可以无需刷新页面,与服务器进行通信

允许依据用户事件来更新部分页面内容

缺点:

没有浏览历史,不能回退

存在跨域问题(同源)

SEO不友好(搜索引擎优化,对爬虫不友好)

AJAX原理

客户端发送请求,请求交给XMLHttpRequest,XMLHttpRequest把请求提交给服务,服务器进行业务处理,服务器响应数据交给XMLHttpRequest对象,XMLHttpRequest对象接收数据,由javascript把数据写到页面上。

 原生AJAX

Ajax工作流程:

Ajax通过XmlHttpRequest对象来向服务器发出异步请求,从服务器获得数据,然后用Javascript来操作DOM而更新页面。

(1)创建Ajax对象(XmlHttpRequest)

var xmlhttp=new XMLHttpRequest();

(2)判断数据的传输方式(get/post),打开连接open()

xmlhttp.open("get" , "http://127.0.0.1:8089" , true) ;

(3)获得响应

如需获得来自服务器的响应,请使用XMLHttpRequest对象的responseText或responseXML属性。

 onreadystatechange事件

 当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当readyState 改变时,就会触发onreadystatechange事件。

readyState属性存有XMLHttpRequest的状态信息。

下面是XMLHttpRequest对象的三个重要的属性:

 在onreadystatechange事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当readyState 等于4且状态为200时,表示响应已就绪。

如需获得来自服务器的响应,使用XMLHttpRequest对象的responseText或 responseXML属性。

responseText 获得字符串形式的响应数据。

responseXML获得XML形式的响应数据。

(4)发送send()

xmlhttp.send() ;

 

$.ajax()

执行异步AJAX请求。

定义和用法

ajax()方法用于执行AJAX(异步 HTTP)请求。

所有的jQuery AJAX方法都使用ajax()方法。该方法通常用于其他方法不能完成的请求。

语法

$.ajax({name:value,name:value,... })

该参数规定AIAX请求的一个或多个名称/值对。

下面的表格中列出了可能的名称/值

 $.get()和$.post()

jQuery get()和 post()方法用于通过HTTP GET或POST请求从服务器请求数据。

HTTP请求:GET vs POST

两种在客户端和服务器端进行请求-响应的常用方法是:GET和POST。

GET-从指定的资源请求数据

POST-向指定的资源提交要处理的数据

GET基本上用于从服务器获得(取回)数据。注释:GET方法可能返回缓存数据。

POST也可用于从服务器获取数据。不过,POST方法不会缓存数据,并且常用于连同请求一起发送数据。

 $.get()方法

$.get()方法通过HTTP GET请求从服务器上请求数据。

语法:

$.get(URL ,callback);
或
$.get( URL [,data ] [, cal1back ] [, dataType ] )

URL:发送请求的URL字符串。

 data:可选的,发送给服务器的字符串或key/value键值对。

 callback :可选的,请求成功后执行的回调函数。

 dataType:可选的,从服务器返回的数据类型。默认︰智能猜测(可以是xml, json, script,或 html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值