说起AJAX,很多同学可能在很多地方都见过,各大招聘网站上对WEB前端和PHP程序员的技能要求列表也是必不可少的。然而,很少看到ajax请求步骤的详细代码和描述
什么是AJAX引擎?
AJAX引擎实际上是一个JavaScript对象,完全写成了一个窗口。XMLHttpRequest对象。由于浏览器版本不同,尤其是旧版本的IE浏览器,虽然也支持AJAX引擎,但其编写方式不同。ActiveXObject对象通常用于在IE的较低版本中创建AJAX引擎。AJAX来源于“异步JavaScript和XML”的缩写,也称为异步Javascript和XML。简而言之,它是一个JS对象,可以在网页加载后不刷新的情况下与服务器进行交互。产生了出色的用户体验效果。
AJAX是用来做什么的?
AJAX技术被广泛用于实现具有良好用户体验的交互功能,例如:
搜索产品时的关键词推荐
提示注册同名的新用户
现在几乎所有的网站都使用Ajax技术,使用Ajax技术最具代表性的网站有新浪微博、谷歌地图、百度搜索、淘宝等。
AJAX的实现原理
Ajax的原理简单来说就是通过浏览器的javascript对象XMLHttpRequest(Ajax engine)对象向服务器发送异步请求并接收服务器的响应数据,然后用javascript操作DOM更新页面。最关键的一步是从服务器获取请求的数据。即用户的请求是通过Ajax引擎间接发送的,而不是直接通过浏览器发送的,Ajax引擎也接收服务器返回的响应数据,所以不会导致浏览器上所有页面刷新。
AJAX请求步骤详细代码
由于AJAX是一种从客户端开始并与服务器交互的技术,因此它必须涉及两个方面:客户端和服务器。让我们以成员注册的用户名为例,编写一个详细的AJAX请求步骤和代码:
客户代码reg.html
!doctype html heartheta charset=' utf-8 '/title Ajax引擎实现了用户名的重名检测/title/headsdyformp用户名:输入类型=' text ' name=' username ' id=' username '/Span id=' result '/Span/pppassword:inputtype=' password ' name=' pwd 1 '/ppconfirm password:inputtype=' password ' name=' pwd 2 '/ppinputtype=' button ' value='立即注册'/p/formscript type=' text/JavaScript//触发用户名。当用户名输入框失去焦点时onblor=function(){//主角进入舞台创建——AJAX引擎,使用详细代码创建var Ajax=new XMLHttpRequest();//创建一个AJAX引擎实例//创建一个GET请求,并发送用户名值ajax.open('GET ',' check.php?username=' this . value);//当AJAX引擎的状态发生变化(多次执行)时,触发onreadystatechange属性指向的函数。//有五个状态值:0 1 2 3 4,其中4表示服务器准备好响应Ajax了。onreadystatechange=function(){//必须准备好在服务器上响应。而HTTP的状态码是接收数据前的200。//ajax.readyState获取服务器响应状态代码,必须为4表示就绪。//ajax.status获取HTTP的状态代码。如果(Ajax . ready state==4 Ajax . status==200){//Ajax . response text接收到服务器//console . log(Ajax . response text)返回的内容,则必须为200表示成功;//收到服务器响应数据后,说明AJAX工作已经完成,并提示消息if (Ajax。response text==' 1 '){结果。innerhtml='此用户名太流行,请重新选择';result . style . color=' # f00 ';//将字体设置为红色}else{result.innerHTML='恭喜,可以注册了';result . style . color=' # 0a 0 ';//将字体设置为绿色} } } Ajax . send();//发送请求}/脚本/正文/html服务器端代码check.php
//服务器端的代码可以用PHP编写,可以根据逻辑反馈数据为客户端实现认证功能$ username=$ _ GET[' username '];//连接到数据库的代码省略了$ SQL='从用户中选择id,其中用户名=' $ username$ RS=MySQL _ query($ link,$ SQL);//将构造好的SQL语句发送到服务器执行if(MySQL _ num _ rows($ RS)){ echo ' 1 ';//如果找到用户名,则证明该用户名已经存在,并返回1 } else { echo ' 0//如果用户名没有找到结果,则证明用户名不存在,返回0}//关闭数据库连接,释放结果集==Attached: AJAX方法和属性表==
方法:
属性:
最后,注意一个重要问题。XMLHttpRequest对象没有跨域能力,这意味着ajax不能从其他网站请求数据。有什么解决办法吗?答案是肯定的,你需要使用JSONP
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。