`
ben_hu
  • 浏览: 94012 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JQuery中的Ajax

阅读更多
JQuery中的Ajax

用JavaScript实际过Ajax功能功的朋友们一定不会忘记使用XMLHttpRequest对象的步骤,

先生成XMLHttpRequest对象,如果浏览器不支持还要使用ActiveXObject, 然后就是绑定

回调函数,接下来.open操作,有时还要设置 请求头 然后 .send操作. 步骤太多了. 如果使

用JQuery就方便多了. 当然使用JQuery时也不要忘记,JQuery的背后其实也是按上述步骤

来实际的. JQuery中有关Ajax的操作方法有很多,但我一般只有 $.ajax() 好,现在就用一

个实际来讲解这个方法的使用.  下面是实现代码.

第一种实现

getNextTheme

其实是一个JavaScript的类

function getNextTheme(){ } //完成后的回调函数,其实也可以不用这个,JQuery还提供两个更简单的 getNextTheme.prototype.callback_Complete = function(XMLHttpRequest, textStatus){

      if (XMLHttpRequest.readyState == 4) {

              var data = XMLHttpRequest.responseText; this.instance.finished(data); 

      } else {

           this.instance.finished("搜索线程发生错误" + textStatus); 

      }

 } 

getNextTheme.prototype.finished = function(data){ 

           //对服务器返回的数据 data 进行处理,因为处理代码与本课无关,所以忽略. 

           // 对 data 进行处理 

} 

getNextTheme.prototype.begin = function(){

    $.ajax({ instance: this, url: PROXY_URL_THEME, 

         //这个就是远程用来处理请求的页面,可以是PHP写的,也可以是JSP,也可以是ASP

    cache: false, async: true, dataType: "html", timeout: 15000, complete: this.callback_Complete }); 

} 

$(document).ready(function(){

 var getTheme = new getNextTheme(); getTheme.begin(); }); 

代码分析 首先得说明一下, 以代码其实是一个JavaScript中的类. 

getNextTheme就是这个类的类名

 var getTheme = new getNextTheme(); 

getTheme.begin(); 

先生成getNextTheme的实例,然后调begin()方法就开始向服务端"要"数据了.

 具体有关JavaScript类的知识请朋友自行搜索,查找.代码解析:

 $.ajax({ 

instance: this, 

type:"GET", 

url: PROXY_URL_THEME, 

cache: false, 

async: true, 

dataType: "html", 

timeout: 15000, 

complete: this.callback_Complete }); 

type: 选择是以"GET"或"POST"的方式向服务器发送数据.

url: 服务器端的接收URL

cache: 会不会从浏览器缓存中加载请求信息, 选择有true,false,默认false

async: (默认: true) 默认设置下,所有请求均为异步请求。如果需要发

送同步请求,请将此选项设置为 false。

注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

dataType:预期服务器返回的数据类型

timeout: 设置超时,单秒毫秋季

complete: 请求完成后回调函数 (请求成功或失败时均调用)。

知识点

在这儿有一个instance参数,这个参数是我自己"造"的, 我们除了使

用JQuery内置的参数外还可以自己定义一些参数.instance这个参

数就是我自己定义的, 怎么定义? 直接写上去就是了,参数可以自己命

名. 这个instance里放的东西可不会发送到服务端哟, 这个参数里的

数据我是给回调函数使用的. 为什么要这样做? 因为当请求被响应后

JQuery就会去调用回调函数, 这时回调函数被传入的参数只有JQuery

预定给出的类型, 有时我们是需要使用自己的数据,怎么办? 可以

在 $.ajax({}) 中把我们的数据放进去,这样回调函数就能直接访

问到了. instance使用代码如下:

getNextTheme.prototype.callback_Complete = 

function(XMLHttpRequest, textStatus){ 

       if (XMLHttpRequest.readyState == 4) { 

                var data = XMLHttpRequest.responseText; 

                this.instance.finished(data); 

       } else {

                 this.instance.finished("搜索线程发生错误" + textStatus); 

       } 

} 这里面的this.instance 就是我们在$.ajax({})中给入的instance.

 记住,名字可以自己取,可以是abc,也可以是myVar. 

第二种实现 

getNextTheme 其实是一个JavaScript的类 

function getNextTheme(){ } //响应成功的回调函数 getNextTheme.prototype.callback_Success = function(data){ 

      this.instance.finished(data); 

      this.instance.finished("搜索线程发生错误" + textStatus); 

} //响应失败的回调函数 

getNextTheme.prototype.callback_Error = function(){

      this.instance.finished("搜索线程发生错误" + textStatus); 

} 

getNextTheme.prototype.finished = function(data){

          //对服务器返回的数据 data 进行处理,因为处理代码与本课无关,所以忽略. 

          // 对 data 进行处理 } 

       getNextTheme.prototype.begin = function(){ 

            $.ajax({ 

                   instance: this, 

                   url: PROXY_URL_THEME, //这个就是远程用来处理请求的页面,可以

                                       //  是PHP写的,JSP,也可以是ASP 

                    cache: false, 

                    async: true,

                    dataType: "html", 

                    timeout: 15000, 

                    success: this.callback_Success, 

                    error:this.callback_Error }); 

             } 

    $(document).ready(function(){ 

    var getTheme = new getNextTheme(); 

    getTheme.begin(); 

}); 

代码分析: 因为其它的都没变化,就$.ajax({})中的参数有小小的

变化,所以我只说说这个变化.

success: this.callback_Success 如果成功响应则调用名为callback_Success的回调函数 error:this.callback_Error 如果无响应或者响应有问题则调用名为 callback_Error的回调函数

分享到:
评论

相关推荐

    jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Object.success,但后台能够返回数据,原代码如下: var source=[]; $.ajax({ ...

    Jquery中AJAX的详细参数列表中文WORD版

    资源名称:Jquery中AJAX的详细参数列表 中文WORD版内容简介:本文档主要讲述的是Jquery中AJAX的详细参数列表;Jquery中使用AJAX非常简单,也分成方便,Jquery会自动根据内容选择post还是get方式提交数据,并且还会...

    jQuery中ajax请求后台返回json数据并渲染HTML的方法

    jQuery中的AJAX请求是一种非常常见的前端异步数据交互方式,它的作用是使得页面无需重新加载即可向服务器请求数据,并将数据动态地加载到页面中。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它...

    41.jQuery中Ajax和原生js实现Ajax的关系.avi

    jQuery中Ajax和原生js实现Ajax的关系

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** 在Web开发中,分页是一种常见的数据展示方式,它能够有效地组织大量数据,提高页面加载速度,优化用户体验。jQuery,一个轻量级、功能丰富的JavaScript库,结合AJAX(异步JavaScript和...

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    JQuery中Ajax的异步调用 示例

    JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,JQuery,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,ajax,一个关于在js中通过JQuery实现异步无...

    JQuery中ajax,get方法在ashx,aspx,asmx中的使用

    JQuery中ajax,get方法在ashx,aspx,asmx中的使用,分别是在aspx页面,ashx页面,webService页面三种列举了案例,分别使用了GET和POST两种方式的请求,请求类型类型包含有text,json,xml.本案例全面,内容基础易懂,特别适合...

    Ajax+JQuery应用Demo

    工作之余写的一些Ajax应用,有6个Demo,数据库为mysql,使用之前看readme.txt。javascript与jquery混用。无刷新购物车、输入提示、表格局部刷新、xml实时数据更新、划词解释。

    jquery-ajax教程

    这里仅需一行代码就能完成原始Ajax中多行代码才能实现的功能。 #### 四、jQuery Ajax函数详解 jQuery提供了一系列Ajax相关的函数,这些函数具有丰富的选项和回调机制,可以满足各种复杂的Ajax需求。主要包括: 1....

    jquery,ajax的几个小例子

    1. **$.ajax()函数**:这是jQuery中最核心的Ajax方法,可以接受多个参数来定制请求。例如,URL、类型(GET或POST)、数据、回调函数等。基本用法如下: ```javascript $.ajax({ url: 'your-url', type: 'GET', ...

    基于jQuery的Ajax聊天室程序

    在这个聊天室程序中,jQuery库被用来简化Ajax的使用,使得开发者能更轻松地实现这一功能。 1. **jQuery**:jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。在本聊天室...

    Jquery跨域Ajax请求测试

    在"JqueryWebServiceTestDemo"这个示例中,可能包含了完整的前端HTML、CSS和JavaScript文件,以及可能的服务端接口文档或示例代码,用于演示如何在实际项目中运用jQuery进行跨域Ajax请求。通过学习和运行这个示例,...

    老裴帮助关于Jquery中Ajax的常用方式

    最后,`JqueryAjax.jsp`可能是示例代码或教程中的一个页面,它可能包含有关如何在JSP环境中使用jQuery Ajax的实例。在学习和实践中,结合具体的代码示例,可以更好地理解Ajax在jQuery中的应用。记得在实际项目中,应...

    Asp.Net MVC之jQuery与AJAX操作实例

    在Asp.Net MVC框架中,jQuery和AJAX的结合使用极大地提升了用户体验,使得网页能够实现异步数据交互,无需刷新整个页面即可完成数据的增删查改操作。本实例将深入探讨如何在Asp.Net MVC项目中应用jQuery与AJAX。 一...

    jQuery-ajax-用户名异步请求

    在Web开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理以及Ajax交互。本主题聚焦于jQuery中的Ajax功能,特别是如何利用它进行异步用户名验证。Ajax,即Asynchronous JavaScript and ...

    ajax、javascript、jquery详细课件

    在Ajax中,通常包括以下步骤:创建XMLHttpRequest对象、打开连接、发送请求和处理响应。 **JavaScript** JavaScript是一种轻量级的解释型编程语言,主要用于网页和网络应用开发。它是Web开发的基础,用于实现...

    jquery-ajax实例

    AJAX(异步JavaScript和XML)技术在现代Web开发中扮演着关键角色,而jQuery的ajax方法则提供了简洁的API来实现这一功能。 首先,我们来看`bean - json`的转化。在Web服务中,我们经常需要在服务器端处理Java Bean...

    jquery中ajax使用error调试错误的方法

    本文实例讲述了jquery中ajax使用error调试错误的方法。分享给大家供大家参考。具体分析如下: JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错...

    JQuery+AJAX实现用户名验证

    在IT行业中,前端开发是构建动态网页应用的关键环节,而jQuery和AJAX是其中不可或缺的工具。本篇文章将深入探讨如何使用jQuery与AJAX技术来实现一个简单的用户名验证功能,以此来确保用户输入的用户名的独特性。这个...

Global site tag (gtag.js) - Google Analytics