原理及概念

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术。
动态网页:是指可以通过服务器语言结合数据库随时修改数据的网页。
静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。
AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
Ajax的优势
AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
AJAX 可使因特网应用程序更小、更快,更友好。
AJAX 是一种独立于 Web 服务器软件的浏览器技术。
AJAX 基于下列 Web 标准:
JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。
Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。
不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。
通过 AJAX,因特网应用程序可以变得更完善,更友好。
Ajax的异步
异步:是相对于同步而言的,我们学过的定时器也是异步的一种,也就是其他程序不需要等待定时器的代码全部执行完毕以后才能执行代码。因为定时器有可能是无限循环执行代码的,如果等待定时器执行完毕那么其他的代码将永远无法运行。所以异步编程就是相对于其他代码是独立完成的。也就是上面所说的ajax是独立于浏览器平台的。
Tip:事件也是异步执行的,事件是发生某件事情后才会执行代码的。
同步:我们之前所写的代码除了定时器和事件大部分都是同步执行的。也就是同一个代码块中都是从上到下执行的。
Ajax的工作原理
Ajax 核心对象XMLHttpRequest
var _hr=new window.XMLHttpRequest();
通过该实例化的对象向服务器
发出请求,等待服务器响应
服务器响应完成后客户端再处理
服务器端响应的数据。
Ajax请求服务器的过程中有5个状态
0:表示请求服务器之前
1:表示打开远程服务器链接对应open方法
2:表示向服务器发送数据对应send方法
3:表示服务器响应过程中并未结束
4:表示服务器响应完成
/**
* 创建XMLHttpRequest对象
* @param _method 请求方式: post||get
* @param _url 远程服务器地址
* @param _async 是否异步
* @param _parameter 向服务器发送数据
* @param _callBack 回调函数
*/
function parameterDeal(_parameter){
var _sender="";
if(_parameter instanceof Object){
for(var k in _parameter){
_sender+=k+"="+_parameter[k]+"&";
}
return _sender.replace(/\&$/g,"");
}else{
return _parameter;
}
}
function createXMLHttpRequest(){
try{
return new window.XMLHttpRequest();
}catch(e){
try{
return new ActiveXObject("MSXML2.XMLHTTP.6.0");
}catch(e){
try{
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}catch(e){
try{
return new ActiveXObject("MSXML2.XMLHTTP");
}catch(e){
try{
return new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
throw new Error("该浏览器版本太低,已经被大部分市场淘汰,请升级!!!");
return;
}
}
}
}
}
}
function ajaxRequest(_method,_url,_async,_parameter,_callBack){
var _ajax=createXMLHttpRequest();
if(_ajax){
_ajax.onreadystatechange=function(){
if(_ajax.readyState==4 && _ajax.status==200){
_callBack(_ajax.responseText);
}
}
_ajax.open(_method,_url,_async);
_ajax.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=utf-8");
_ajax.send(parameterDeal(_parameter));
}
}
这是封装好了的原生Ajax,在使用的过程中,只需要新建一个js文件,将这段代码放进去,什么都不要改,在HTML页面引入之后,调用 ajaxRequest()函数,传入你想要的参数,就可以正常使用了。
此方法纯属个人封装,有更精简方法的朋友欢迎与我分享!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# Ajax
# 一个AJAX自动完成功能的js封装源码[支持中文]
# 原生Javascript封装的一个AJAX函数分享
# js实现对ajax请求面向对象的封装
# 原生JS封装ajax 传json
# str
# excel文件上传提交表单(推荐)
# JavaScript 封装Ajax传递的数据代码
# 浅析jQuery Ajax通用js封装
# js锁屏解屏通过对$.ajax进行封装实现
# 使用原生js封装的ajax实例(兼容jsonp)
# 纯js封装的ajax功能函数与用法示例
# 原生javascript实现的ajax异步封装功能示例
# 原生js封装的ajax方法示例
# 应用程序
# 都是
# 是一种
# 可使
# 相对于
# 过程中
# 动态网页
# 这是
# 好了
# 有可能
# 不需要
# 才会
# 是指
# 已被
# 中有
# 其他的
# 这段
# 可以通过
# 与我
# 更快
相关文章:
建站VPS能否同时实现高效与安全翻墙?
php json中文编码为null的解决办法
建站之星后台密码遗忘如何找回?
在线制作视频网站免费,都有哪些好的动漫网站?
宁波免费建站如何选择可靠模板与平台?
孙琪峥织梦建站教程如何优化数据库安全?
如何用5美元大硬盘VPS安全高效搭建个人网站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何用VPS主机快速搭建个人网站?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
浅谈Javascript中的Label语句
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
实现虚拟支付需哪些建站技术支撑?
小程序网站制作需要准备什么资料,如何制作小程序?
制作网站的软件免费下载,免费制作app哪个平台好?
代购小票制作网站有哪些,购物小票的简要说明?
如何快速生成凡客建站的专业级图册?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何在IIS服务器上快速部署高效网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
长沙做网站要多少钱,长沙国安网络怎么样?
制作网站的基本流程,设计网站的软件是什么?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
建站主机是否属于云主机类型?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
网页设计网站制作软件,microsoft office哪个可以创建网页?
定制建站流程步骤详解:一站式方案设计与开发指南
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站之星如何快速更换网站模板?
建站上市公司网站建设方案与SEO优化服务定制指南
教学网站制作软件,学习*后期制作的网站有哪些?
如何在新浪SAE免费搭建个人博客?
简历在线制作网站免费版,如何创建个人简历?
如何在香港免费服务器上快速搭建网站?
微信推文制作网站有哪些,怎么做微信推文,急?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
安云自助建站系统如何快速提升SEO排名?
深圳网站制作的公司有哪些,dido官方网站?
黑客如何通过漏洞一步步攻陷网站服务器?
Python多线程使用规范_线程安全解析【教程】
如何用AWS免费套餐快速搭建高效网站?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何在云主机快速搭建网站站点?
*请认真填写需求信息,我们会在24小时内与您取得联系。