AJAX 的操作和调用

AJAX(异步数据处理): Asynchronous (异步)的JavaScript  And  XML ( 局部刷新技术 )

  ajax能做什么:

    页面实现的效果是局部刷新,这种效果都是ajax操作的

    用户名在线监测,搜索提示等等

    无刷新分页,滚动分页加载,微博异步数据发布

    ajax聊天室

  ajax优点:

    速度快:ajax引擎缓存了重复提交的数据

    体验好

    减少了服务器和数据库的读写压力

  ajax数据处理流程:

    服务器端:  PHP+MYSQL+EMAIL(.net,java....)    m=news

    中间:xmlhttp协议

    浏览器端:JavaScript + CSS +HTML

ajax数据处理流程:

  JavaScript 得到表单中的数据,将需要提交的数据传递给ajax引擎(xmlhttp协议的解析器)ajax引擎会缓存用户提交的数据,并且将需要提交的数据进行提交。

  数据提交服务器,服务器处理完毕后,会将数据通过xmlhttp协议对象返回到浏览器中,ajax引擎会将返回的数据和提交的数据匹配,然后缓存到ajax引擎中,然后js从ajax引擎中获取数据.

  数据第二次提交时,如果提交的数据已经提交过,ajax引擎有匹配的返回数据,那么ajax引擎则不会再向服务器提交数据,而会从ajax引擎直接将原来缓存的数据直接返回。

ajax操作步骤:

  创建xmlhttp协议对象:

  IE: activeXobject插件 IE8上用的是FF系列的xmlhttprequest对象

  FF: xmlhttprequest对象(类)

var http_request= false;
    if(window.XMLHttpRequest) { //FF Chrome 浏览器
        http_request = new XMLHttpRequest();
    }else if (window.ActiveXObject) { // IE浏览器  IE9 以下
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (es) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (es) {}
        }
    }
IETester

  设置监视句柄:监控整个的ajax数据处理流程

    readyState: 获取当前ajax的处理状态

      不同的浏览器状态不同,有的是1,4有的是1234

      0  未创建ajax对象

      1  ajax对象创建成功,还没有准备发送的数据

      2  ajax发送的数据已经准备完毕,还没有发送

      3  ajax已经发送数据,还没有接受完数据

      4  ajax接受完毕数据

    readyState的状态数值,每更改一次,都会触发一次的onreadystatechange

    ajax对象.onreadystatechange = 方法名;

  准备发送的数据:

    ajax对象.open(“提交的方式”,”提交页面和数据”,同步/异步)

    提交方式:  GET/POST

    提交的页面和数据:

      GET: 比如  index.php?m=news&username=tom

      POST: 提交的页面

    同步/异步: true:异步   false:同步

      同步:数据一次性提交,一次性接收(多个ajax挨个提交接收)

      异步:数据一边提交,一边接收(多个ajax可能一起提交)

  发送数据:

    ajax对象.send([数据]);

    GET: send无参数

    POST: send中放置的时post提交的数据,并且提交的是字符串

  监视代码中:

    发送和接受过程中不能有错误

    ajax对象.status = 200

    200:数据发送和接受无错误

  接受数据:

    ajax对象.responseText;     #返回的是服务器返回的数据#

  【user.html】  #用户名在线监测user.html  user.php    user表 pdo操作数据库#

<html>
    <head>
    <script>
            // ajax封装函数
        function ajax(method,url,data,asyc,success){
            // 创建xmlhttp协议对象
            var http_request= false;
            if(window.XMLHttpRequest) { //Mozilla 浏览器
                http_request = new XMLHttpRequest();
            }else if (window.ActiveXObject) { // IE浏览器
                try {
                    http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (es) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (es) {}
                }
            }
            http_request.onreadystatechange = check;
            // GET方式提交
            if(method.toUpperCase() == "GET"){
                http_request.open(method,url+"?random="+Math.random()+"&"+data,asyc);
                http_request.send();
            }
            // POST方式提交
            if(method.toUpperCase() == "POST"){
                http_request.open(method,url,asyc);
                // 设置xmlhttp请求的头信息  变量=值&变量=值
                http_request.setRequestHeader("content-Type","application/x-www-form-urlencoded");
                http_request.send("random="+Math.random()+"&"+data);
            }

            function check(){
                if(http_request.readyState == 4 && http_request.status ==200){
                    var text = http_request.responseText;

                    if(text == "1"){
                        var text = "用户名已存在";
                        var color = "red";
                    }else{
                        var text = "用户名可用";
                        var color = "green";
                    }
                    info.innerHTML = text;
                    info.style.color = color;
                }
            }
        }
    </script>
    </head>
    <body>
    </body>
</html>

  【user.php】

<?php echo $_GET[‘uname‘]?>
时间: 2024-12-11 05:36:45

AJAX 的操作和调用的相关文章

JQuery中Ajax的操作

Java软件开发中,后台中我们可以通过各种框架,像SSH等进行对代码的封装,方便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进行封装控制,使我们只需要进行一些简单配置就可以实现:而Spring进行了对各种对象的管理进行封装,提供了AOP编程的方式,大大方便了我们:而Hibernate和IBatis则是对JDBC代码进行封装,不需要我们每次都写那些重复而繁杂的JDBC代码. 前台呢,对于页面一些效果,验证等,我们都是通过JavaScript语言进行完

Ajax-04 jQuery Ajax 常用操作

jQuery jQuery 其实就是一个JavaScript的类库,其将复杂的功能做了上层封装,使得开发者可以在其基础上写更少的代码实现更多的功能. jQuery Ajax a.概述 jQuery 不是生产者,而是大自然的搬运工 jQuery Ajax 本质是 XMLHttpRequest 或 ActiveXObject b.使用 --- 下载导入jQuery(2.+ 版本不再支持IE9以下的浏览器) jQuery Ajax常用操作 jQuery.ajax( url [, settings ]

使用ASP.NET AJAX 从脚本中调用Web 服务的应用方法

技能点:通过编写WebService,在页面js中调用WebService来进行数据查询. 网站开发,有些时候需要使用js在页面动态生成一些内容,但还有些数据要通过查询数据库才能获取的. 但由于诸如主键id等一些关键数据在后台不易获取,或在后台获取数据后不易直接在前台通过js使用. 这种情况下,使用js+ajax的方式来实现,效果也是不错的. 1.编写webservice: 1 using System; 2 using System.Collections.Generic; 3 using S

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

问题1:js这么语言的能力取决于什么?(运行平台)问题2:js是否能够操作文件(一般不能),ajax能否操作文件(一般不能)?

问题:js这么语言的能力取决于什么?(运行平台) 答:现在的js语言可以在浏览器运行(js如果是在浏览器端运行则不能操作磁盘文件),也可以在服务器端运行nodeJs(js在服务器端能够操作文件). 问题:js是否能够操作文件(一般不能),ajax能否操作文件(一般不能)? 答: a. js一般不能,但是分情况看,如果是在服务器端,则可以操作.如果是在浏览器端,则不能直接操作,但是可以操作cookie小文件. b. ajax一般不能操作文件:但是在最新的 ajax level2(formData对

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: &qu

改变mvc web api 支持android ,ios ,ajax等方式跨域调用

公司一个移动后端的项目用到了 webapi 项目搭建到外网环境共app开发者调用测试接口时遇到了一个问题 接口不允许跨域调用 .查阅资料明白 同源策略原则根据请求报头值 Origin 与回应报头值 Access-Control-Allow-Origin 来判断是否允许调用 解决方法 1.ajax使用jsonp jsonp 是通过请求参数中加入回调函数参数值.webapi 收到回调函数参数值返回数据不再是单纯的json,而是根据回调函数参数值 的js方法调用,这样就避免的同源策略 需要webapi

ajax跨域请求调用webservice接口

1.WebService 接口编写 步骤:新建web项目=>添加web service=>编写方法接口=>然后发布(本地测试可以直接把这个web service运行起来). 关键如何让外部Ajax 调用. 首先,配置WebService 项目配置文件(web.config)红色部分必须配置,这样第三方才能调用接口方法(经测试通过,直接粘贴就ok),不懂可以百度. <configuration> <system.web> <webServices> &l

AngularJS入门教程之与服务器(Ajax)交互操作示例

AngularJS从Web服务器请求资源都是通过Ajax来完成,所有的操作封装在$http服务中,$http服务是只能接收一个参数的函数,这个参数是一个对象,用来完成HTTP请求的一些配置,函数返回一个对象,具有success和error两个方法. 用法如下: $http({method:'post',url:'loginAction.do' }).success(function(data,status,headers,config){ //正常响应回调 }).error(function(d