AJAX是Asynchronous Javascript And XML(异步JavaScript + XML)。

用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

同步是脚本会停留并等待服务器发送回复然后再继续;异步是脚本允许页面继续其进程并处理可能的回复。同步就是整个页面都刷新,而异步是只刷新用了Ajax技术的部分。

 
AJAX的交互模型:
是Ajax在Browser端引入一个执行引擎,它一边应付user的请求,一边把某些必须交给服务器处理的东西背地里传送给服务器,同时背地里把服务器的结果准备好(接受服务器端的数据),展现给客户的技术模式。这样增强了用户的操作性。
 
AJAX的交互流程:
1、启动,获取XMlHttpRequest对象,这时需要兼容浏览器
2、open,打开url通道,并设置异步传输 
       open(method,URL,async),method有get或post,URL是请求资源的地址,async表示是否异步请求

         setRequestHeader(header,value)向请求添加http头部
3、send,发送数据到服务器
         send(string),method为post
4、服务器接受数据并处理,处理完成后返回结果
         返回responseText,responseXML形式的数据。一般是responseText
5、客户端接收服务器端返回
        这个阶段有onreadystatechange,readyState,status三个属性
    当readyState属性改变时,就会调用onreadystatechange函数

        readyState存有XMLHttpRequest的状态0-4
          0:请求未初始化
          1:服务器连接已建立
          2:请求已接收
          3:请求已处理
          4:请求已完成,且响应已就绪
        status:200ok,404未找到页面
只有当readyState == 4 && status == 200时,表示请求成功
   
 代码示范:
 (function () {
var btn = document.getElementById('test');
btn.onclick = function () {
ajax('0821-a.txt', function (str) {
alert(str);
});
};
function ajax(url, success, fail) {
var xhr = null;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}else {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open('get', url, true);
xhr.send(null);
xhr.onreadystatechange = function () {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
success(xhr.responseText);
}else {
fail && fail(xhr.status);
}
}
};
}
})();

喜欢就点赞吧<( ̄︶ ̄)>

 

关于AJAX 的交互模型、交互流程及代码示范的更多相关文章

  1. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(1)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选,其余章节将陆续放出.上一篇:Wow ...

  2. AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?

      AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法? 分类: web前端面试题2013-07-20 22:40 630人阅读 评论(0) 收藏 举报 目录(? ...

  3. ajax 、ajax的交互模型、如何解决跨域问题

    1.ajax是什么? — AJAX全称为“AsynchronousJavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. — 不是一种新技 ...

  4. (转)iOS Wow体验 - 第六章 - 交互模型与创新的产品概念(2)

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第六章译文精选的第二部分,其余章节将陆续放出.上一 ...

  5. Ajax实现局部数据交互的一个简单实例

    想要实现的功能:利用Ajax技术通过点击一个<button>按钮,然后在指定的文本框中输出想要的值. 1.使用Jsp创建一个前端页面. <body> <div style ...

  6. OpenGL坐标变换及其数学原理,两种摄像机交互模型(附源程序)

    实验平台:win7,VS2010 先上结果截图(文章最后下载程序,解压后直接运行BIN文件夹下的EXE程序): a.鼠标拖拽旋转物体,类似于OGRE中的“OgreBites::CameraStyle: ...

  7. 用PHP和Ajax进行前后台数据交互——以用户登录为例

    很多网站中都有用户登录系统,要完成用户的注册和登陆,就一定要用到前后台的数据交互.在这里以简单的用户注册和登陆为例介绍一下前后台交互的大致流程. 首先,我们来做一个简单的登陆界面. 这里为了方便我使用 ...

  8. UED视觉交互设计与流程介绍

    UED视觉交互设计与流程介绍 ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, ...

  9. 小睿开始呼叫用户,然后FS怎么跟用户交互的整个流程原理

    学习从小睿开始呼叫用户,然后FS怎么跟用户交互的整个流程原理;     1.小睿向欣方新发起呼叫请求;     2.欣方新可以通过线路发起SIP协议请求,来呼叫用户;     3.当用户接通后,将建立 ...

随机推荐

  1. 使用Webview实现app启动引导页

    效果如下: 首先需要一个html页面及相应的js和css支持放在assets目录下(如果没有这个目录请项目上右键-new-folder-assets) 配置权限: <uses-permissio ...

  2. js 转码 和 .Net 后台解码

    为防止 中文乱码,js传值要转码,当js 用 escape() 转码时,.Net 后台可以用 HttpUtility.UrlDecode() 进行解码. 例如:   document.cookie = ...

  3. 移动到web整理

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  4. sql server 删除表及表的相关视图、存储过程、方法

    注意:进行此操作前需先备份数据库,免得删错无法恢复 1.查询 SELECT Name ,type FROM SysObjects WHERE name LIKE '%cases%' 2.拼接语句 SE ...

  5. WP8.1 模仿手机通讯记录的选择框

    2016年11月6日 更新: 其实 这个有一个非常简单的方法.非常简单... ListView SelectionMode="Multiple" 这个一XAML  代码就可以解决了 ...

  6. 启用CentOS6.5 64位安装时自带的MySQL数据库服务器

    本人在虚拟机上又安装了一台linux机器,作为MySQL数据库服务器用,在安装时选择了系统自带的MySQL服务器端,以下是启用步骤. 首先开启mysqld服务 #service mysqld star ...

  7. Vanishing point detection

    https://marcosnietoblog.wordpress.com/code/

  8. jQuery语法介绍

    来自:http://www.cnblogs.com/ccorz/p/5803353.html jQuery类似于Python中模块的概念,是集成了javaScript和Dom的模块.大致分为两种版本1 ...

  9. Python_转义字符

    转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \ ...

  10. My Baits入门(一)mybaits环境搭建

    1)在工程下引入mybatis-3.4.1.jar包,再引入数据库(mysql,mssql..)包. 2)在src下新建一个配置文件conf.xml <?xml version="1. ...