`
chenxueyong
  • 浏览: 342260 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

jquery 实现加载前动画

阅读更多

这里主要用$.ajax(options)

 

这个是jQuery 的底层 Ajax 实现。简单易用的高层实现见 $.get, $.post 等。 $.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

注意: 如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。错误的 MIME 类型可能导致不可预知的错误。见 Specifying the Data Type for AJAX Requests 。当设置 datatype 类型为 'script' 的时候,所有的远程(不在同一个域中)POST请求都回转换为GET方式。

 $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。 jQuery 1.2 中,您可以跨域加载 JSON 数据,使用时需将数据类型设置为 JSONP。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。数据类型设置为 "jsonp" 时,jQuery 将自动调用回调函数。

 

参数名称

类型

说明

url

String

(默认: 当前页地址) 发送请求的地址

type

String

(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。

timeout

Number

(默认:0)设置请求超时时间(毫秒)。此设置将覆盖全局设置

data

Object

发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。

contentType

String

(默认: "application/x-www-form-urlencoded") 发送信息至服务器时内容编码类型。默认值适合大多数应用场合

processData

Boolean

(默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

username

String

如果服务器需要登录访问的时候的用户名,一般不需要

password

String

如果服务器需要登录访问的时候的密码,一般不需要

accepts

Object

{xml: "application/xml, text/xml",

html: "text/html",

script: "text/javascript, application/javascript",

json: "application/json, text/javascript",

text: "text/plain",

_default: "*/*"}告诉服务器可接受的数据类型,和下边的dataType是对应的,不需要修改

dataType

String

预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含 script 元素。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

beforeSend

Function

发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数

error

Function

(默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象

complete

Function

请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。

sucess

Function

请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态

 

global

Boolean

(默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件

ifModified

Boolean

(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断

cache

Boolean

(默认: true) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息

async

Boolean

(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行

 

示例代码:

$.ajax({

              type: "get",

              url: "http://www.xxx.com/test.html",

              beforeSend: function(XMLHttpRequest){

                     //ShowLoading();

              },

              success: function(data, textStatus){

                     //do something

              },

              complete: function(XMLHttpRequest, textStatus){

                     //HideLoading();

              },

              error: function(){

                     //请求出错处理

              }

});

6.4 jQuery中的ajax服务端返回方式

6.4.1 html方式

这种方式是最常见的方式(默认方式),如果是IE7下执行和FireFox的对象是一样的,XMLHttpRequest,上边我们讲了有onreadystatechanage事件,readyState属性,当是html形式返回的时候,用到了另外一个属性responseText,当readyState=4的时候,XMLHttpRequest对象自动将放回的值以字符串的形式赋值给该属性(这个不是jQuery的功能,是XMLHttpRequest),jQuery返回该字符串(这里如果返回值中有JS代码,并不执行),执行 sucuess回调函数,比如html()、append()等等,这些函数讲html代码装载到当前页面的时候才执行其中包含的js代码,而且该代码只执行一次并不缓存。详细的说明请看文件操作函数说明。

示例代码:

$.ajax({

              type: "get",

              url: "http://www.xxx.com/test.html",

        dataType: "html",//(可以不写,默认)

              beforeSend: function(XMLHttpRequest){

                     //ShowLoading();

              },

              success: function(data, textStatus){

                     alert(data);//data是一个字符串对象

              },

              complete: function(XMLHttpRequest, textStatus){

                     //HideLoading();

              },

              error: function(){

                     //请求出错处理

              }

});

6.4.2 xml方式

xml方式和html方式的整个工作流程是一样,就是操作了不同的属性,返回不同的对象,html方式操作的responseText属性,而xml方式操作的是responseXML属性,html返回是一个String对象,而xml 返回的是一个XML对象。操作返回值的时候就大不相同,必须按照XML对象的方式进行操作,如果用alert(),结果肯定是object,相关的操作可以看看xml document 对象属性手册(附件)。xml和html不一样,定义很严格,没有容错机制,如果被请求的xml写的不正确,或者是不完整,jQuery抛出一个异常,Ajax请求终止。

示例代码:

$.ajax({

              url:'my.xml',

              type: 'GET',

              dataType: 'xml',

              timeout: 3000,

              error: function(xml){

                     alert('Error loading XML document'+xml);

              },

              success: function(x){

                     alert(x.xml);//xml的xml属性只在IE下支持

              }

});

6.4.3 json方式

json方式和html方式在请求和服务器中完全是一样,就不在重复说明,请求的返回值实际上都是String对象,有两点不同,第一:html方式的时候并没有限制返回的字符串格式,而json方式的时候,必须符合json协议的规范。第二:html方式请求完成之后没有做任何的操作直接回调sucuess,而json多了一步就是加了eval,执行返回的字符串,看看源码data = eval("(" + data + ")");返回json对象。

示例代码:

$.ajax({

              url:'my.js',//{‘name’:’name’,’test’:’test’}

              type: 'GET',

              dataType: json,

              timeout: 3000,

              error: function(xml){

                     alert('Error loading XML document'+xml);

              },

              success: function(data){

                     $.each(data,function(i,n){

               alert(n);//显示name和test

});

              }

});

6.4.4 js方式

js方式和jsonp方式应该严格意义上不属于Ajax范畴,属于浏览器对含有src属性标签的二次请求原理。当然这里只用了script标签,工作原理就是在head中创建一个script标签,src属性就是url,浏览器自动加载js文件,并执行(不缓存,只执行一次)。由于他不是真正意义上的Ajax,所以jQuery定义的全局Ajax事件并不能完全触发,只能触发两个事件 ajaxSuccess和ajaxComplete。

示例代码:

$.ajax({

              url:'my.js',//alert(‘test’)

              type: 'GET',

              dataType: script,

              timeout: 3000,

              success: function(data){

alert(‘load js success’);

              }

});

6.4.5 jsonp方式

jsonp方式的交互方式和js是一样的,本身xmlHttpRequest对象并不能跨域访问,但是script标签的src可以跨域访问,这里就注意两个概念:第一Ajax是不能跨域操作的,第二jQuery的jsonp是可以跨域操作,jsonp到底是什么东西呢?他是一个非官方的定义,目前的规范,需要服务器和客户端进行配合使用,服务器返回必须是这样的格式:

xxx(json对象);xxx是客户端定义的函数名字.

客户端需要这样的定义格式url?callback=xxx,这个的callback和xxx都是自己定义,只要服务器端能理解即可。如果没有定义xxx函数默认是?,jQuery会自动将?替换成内部定义的函数jquery12345678990这样的形式。

为什么需要这样定义呢?因为js本身不能操作script标签src请求结果中的数据(如果想操作就需要用DOM获得innerText再加上eval)。就定义一个客户端函数,将请求的结果以参数的形式传递进去,就可以操作了。

示例代码:

jsonp.php

<?php

echo $_GET[‘callback’].“({‘name’,’name’});”;

jsonp.aspx

Response.Write(Request["callback "] + "({'name': 'name'});");

jquery代码

$.ajax({

              url:' jsonp.php?callback=test',//alert(‘test’)

              type: 'GET',

              dataType: jsonp,

              timeout: 3000,

              success: function(data){

alert(‘load jsonp success’);

              }

});

function test(data){

   alert(data);

}

 

 

 

我的一个例子:

 

            $.ajax({
                type: "POST",
                url: "ajax.aspx",
                data: "id=5&type=3",//注意这里的写法和$.post不一样
                beforeSend: function(XMLHttpRequest) { $("body").append('<div  id="load" style="z-index:10; position:absolute; top:250px"><img src="images/lightbox-ico-loading.gif" /></div>'); },
                success: function(data) { alert(data);  },
                complete: function(XMLHttpRequest, textStatus) {$("#load").remove(); }
            });

分享到:
评论

相关推荐

    30 个 jQuery & CSS3 加载动画和进度栏插件

    在加载动画方面,jQuery提供了一系列简便的方法来创建动态效果,比如`.fadeIn()`, `.slideToggle()`, 和 `.animate()`等,这些方法可以轻松实现页面内容的平滑过渡,使用户在等待内容加载时不会感到枯燥乏味。...

    jQuery loading加载动画特效

    在"jQuery loading加载动画特效"中,我们主要探讨的是如何利用jQuery来实现页面加载时的动态效果,提升用户体验。 一、jQuery基本概念 jQuery是由John Resig在2006年创建的,它的核心理念是"Write Less, Do More"。...

    jquery 实现的等待加载页面

    `更多素材.url`是一个快捷方式或书签,指向更多的资源或教程,帮助开发者扩展他们的知识,例如,可能会链接到其他类型的加载动画或者更复杂的jQuery交互效果。 最后,`js`可能是一个JavaScript文件,里面包含了使用...

    jQuery图片加载loading加载层动画插件

    3. **简单易用**:ProgressBar.js的API设计简洁,只需几行代码即可实现加载动画效果,对开发者友好,即使是初学者也能快速上手。 4. **兼容性**:作为基于jQuery的插件,ProgressBar.js具有良好的浏览器兼容性,...

    js加载动画,jquery加载动画,css加载动画,html加载动画

    然后是jQuery加载动画。jQuery是一个强大的JavaScript库,简化了DOM操作和事件处理,同时也提供了动画API。通过`.animate()`方法,我们可以控制元素的样式属性随时间变化,实现动态效果。此外,jQuery还有预设的动画...

    jquery页面加载效果

    "jQuery页面加载效果"是指利用JavaScript库jQuery实现的动态加载动画,它能够以吸引人的视觉方式展示网页内容正在加载的过程,使用户在等待期间不会感到乏味。这种效果在现代网页设计中被广泛应用,尤其在内容分块...

    jQuery+CSS3鼠标点击按钮加载动画特效

    "jQuery+CSS3鼠标点击按钮加载动画特效"是一个很好的示例,它结合了JavaScript库jQuery的强大功能与CSS3的新特性,实现了多种动态且美观的按钮加载效果。下面将详细解释这个主题涉及的知识点。 首先,jQuery是一个...

    jquery css3进度条加载动画特效

    总的来说,"jQuery CSS3进度条加载动画特效"是结合了前端两大技术,以实现一种动态、互动的用户界面元素。通过理解并掌握这些知识点,开发者能够提升网页的用户体验,尤其是在内容加载期间提供更直观的反馈。

    简单jQuery加载等待转圈页面插件

    这个插件的实现原理通常是通过jQuery的事件监听和DOM操作来控制加载动画的显示与隐藏。例如,当开始一个长时间运行的操作时,插件会添加一个包含加载动画的元素到页面上,然后在操作完成后移除这个元素。这通常涉及...

    jQuery点击加载动画按钮特效.zip

    总结来说,“jQuery点击加载动画按钮特效”是将jQuery的事件处理和CSS3动画相结合的一种巧妙实践,通过这种方式,开发者可以轻松地为网站添加富有吸引力且用户体验良好的交互元素。无论是新手还是经验丰富的开发者,...

    css和jquery实现页面加载前的等待界面

    "css和jquery实现页面加载前的等待界面"这一主题关注的就是如何在用户等待网页内容加载时提供一种视觉反馈,以改善用户体验。加载界面,也称为预加载器,通常是一个简洁的图形或者动画,它在网页内容完全加载之前...

    jQuery网页加载进度条动画特效.rar

    【jQuery网页加载进度条动画特效】是一个利用JavaScript库jQuery和CSS3技术实现的网页加载效果。这个特效在用户等待网页完全加载时,提供一个可视化的进度条,展示当前页面加载的进度,以此提升用户体验,让用户知道...

    jquery实现图片遮罩动画进渡提示特效

    本教程重点讲解如何利用jQuery来实现一个图片遮罩动画过渡提示特效,这在用户交互和界面反馈方面具有很高的实用价值。 首先,我们需要理解“图片遮罩”(Image Masking)的概念。遮罩是覆盖在图片上的一种半透明或...

    jQuery Loading页面加载动画效果代码.rar

    "jQuery Loading 页面加载动画效果代码"就是一个专为此目的设计的资源,它结合了JavaScript库jQuery的高效性和视觉吸引力,为用户提供了一种酷炫且实用的加载体验。 jQuery是一个轻量级的JavaScript库,它的出现极...

    jQuery实现切换页面过渡动画效果

    是一款效果非常酷的jQuery和CSS3通过AJAX调用切换页面过渡动画特效插件。该页面切换特效使用AJAX来动态加载链接内容,在页面加载的时候,使用CSS3来制作非常酷的页面过渡动画效果。插件中使用pushState方法来管理...

    jQuery懒加载点击加载图片代码.zip

    1. 加载动画:在图片加载过程中,可以添加加载动画以提升用户体验。 2. 分页加载:除了点击加载,还可以结合分页功能,每次加载一定数量的新图片。 3. 滚动加载:结合滚动事件,实现滚动到底部自动加载下一批图片...

    jquery的加载提示

    jQuery,作为一款广泛使用的JavaScript库,提供了丰富的API和插件来实现各种加载提示效果。 首先,我们要理解jQuery的基本用法。jQuery简化了JavaScript的DOM操作,事件处理和动画制作。通过引入`&lt;script&gt;`标签引用...

    jQuery CSS3网页预加载动画代码.zip

    "jQuery CSS3网页预加载动画代码.zip" 包含了一个实现这一功能的代码示例,特别地,是一个采用蓝色圆点旋转动画效果的预加载设计。 首先,jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画...

    jquery css 加载插件

    这些CSS文件(如load1.css到load8.css)和JavaScript库(如jQuery)的结合使用,可以创建出各种不同的加载动画,使得页面在处理后台任务时显示一种视觉反馈,告知用户系统正在工作。 首先,jQuery是一个流行的...

    jquery showLoading局部指定加载特效

    CSS中,`.hidden` 类可以隐藏该元素,而具体的加载动画可以通过CSS3的`@keyframes`规则来实现,如上述示例中的旋转圆圈。 然后,我们可以编写一个jQuery插件来实现`showLoading`和`hideLoading`功能: ```...

Global site tag (gtag.js) - Google Analytics