关于ajax异步提交数据_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
8
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5172 | 回复: 7   主题: 关于ajax异步提交数据        下一篇 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-3-27 21:24:13 | [全部帖] [楼主帖] 楼主

关于ajax异步提交数据

一:古老的方式:

    得到XMLHttpRequest(我装了IE和FireFox,所以例子就由这2个来举例)

如何得到?

代码:

function getXmlHttpRequest(){
      var xhr;
      if(XMLHttpRequest){ //如果这个对象存在就是true,如果这个对象不存在就false
            xhr=new XMLHttpRequest();
      }else{
      xhr=new ActiveXObject("Microsoft.XMLHttp");
}
return xhr;
}


由if(XMLHttpRequest)判断该浏览器是IE浏览器还是FireFox

由于不同浏览器获取ajax引擎不同。所以在获取ajax引擎时必须要判断当前的浏览器类型。

下面

有个例子

function a_click(){
var xhr=getXmlHttpRequest();//调用方法得到Ajax引擎(所谓引擎,你就把他当


做一个工具就可以了,专门为用户执行异步请求的一个工具)

xhr.open("get","testajax01.jsp",true);//得到工具后打开(第一个参数 什  方式发送请求,


可以写


get”


可以写


post”


,第二个参数是你请求的页面,第三个参数是,需不需要异步请求,如果写false则界面就会刷新,一般调用了ajax引擎都是异步的,所以这里一般都写true)

xhr.onreadystatechange=function(){//为ajax引擎绑定个onreadystatechange这个


时件,当xhr.readyState发生   化时,就会触发这个事件,就是会调用这个方法。

if(xhr.readyState==4){//一共有5个状态值,当状态值为4,就说明数据已经返回
      if(xhr.status==200){//当你访问页面时,页面会有状态码,比如404就说明你要访问的文件不存在,500则说明你访问的页面出错,而200则是正常返回
            var txt=xhr.responseText;//responseText是你异步访问的页面的返回值
            document.getElementById("message").innerHTML=txt;//让你的返回值在页面显示
      }else{
}
}
};
xhr.send();//发送请求
}


下面

点击前:

北京联动北方科技有限公司

点击后:

北京联动北方科技有限公司

页面未刷新。

我异步访问的是个

jsp文件:

北京联动北方科技有限公司

就一句话,返回

aaaa字符串。

readyState 5个状态值:

">


">二.

JQuery方法

上面的方法确实太繁琐,而且名字又长,真是难记啊。

所以

下面

来种简便的方法,是JQuery对Ajax的支持,

先来个简单的例子,实现和上面一样的功能,看看需要多少

代码:

$(function(){
      $("#a_click").click(function(){
            $("#message").load("testajax01.jsp"
            );
      });
});


没错,这么几句已经完全能满足刚才的业务了。

你不用再自己去判断用户所用的是哪种浏览器了,因为JQuery兼容各种浏览器,

下面

我来解释下代码:

$(function(){});代码最外层 包了这么一个东西,

其实这个东西跟window.onload=function(){};

是一个意思

就是当页面完全加载完毕后调用里面的方法。这个非常常用,所以JQuery把他搞成更简便的方法$(function(){});直接在里面写方法,在页面加载完毕之后就会调用的。

点击前:

北京联动北方科技有限公司

点击后:

北京联动北方科技有限公司

跟上面的功能一样,

但是代码却少了很多很多。

看过去也更加清爽。

下面

再简单介绍下另外JQuery对Ajax支持的3种方法。

分别是:$.get() $.post() $.ajax

下面

分别完成上面那个简单的业务

$.get()例子:

北京联动北方科技有限公司

$("#a_click").click(function(){
      $.get("testajax01.jsp",function(data){
            $("#message").html(data);
      });
});


虽然比load要麻烦点 但与前面的方法比起来 还是要方便很多的,$.post与$.get大同小异,就不过多赘述了

北京联动北方科技有限公司

$.ajax()例子:

$.ajax({
      url:"testajax01.jsp",
      success:function(data){
            $("#message").html(data);
      }
});


看起来比上面的$load $.get方法都要麻烦,但是,这是最常用的的方法。

因为它get post都支持,还有就是,他只有一个参数,是个json对象,

你可以在里面配置各种参数。

也能实现业务

好这里就简答介绍下

ajax实现的几种方法,可能不是很全面,

但是大家可以提出,在后续的帖子我也会跟进

还是那句话,有问必答。




赞(0)    操作        顶端 
hui.chen
注册用户
等级:大校
经验:6070
发帖:48
精华:4
注册:2014-2-7
状态:离线
发送短消息息给hui.chen 加好友    发送短消息息给hui.chen 发消息
发表于: IP:您无权察看 2014-3-27 22:50:15 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司我直接跳过了第一种方法,最开始接触的就是jquery里的ajax


u=2871144702,1362725177&fm=21&gp=0.jpg.gif


赞(0)    操作        顶端 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-3-29 19:03:47 | [全部帖] [楼主帖] 3  楼

这样啊~~要从基础学起哦 亲



赞(0)    操作        顶端 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-3-30 10:04:16 | [全部帖] [楼主帖] 4  楼

jquery基本上成标准了。



赞(0)    操作        顶端 
hui.chen
注册用户
等级:大校
经验:6070
发帖:48
精华:4
注册:2014-2-7
状态:离线
发送短消息息给hui.chen 加好友    发送短消息息给hui.chen 发消息
发表于: IP:您无权察看 2014-3-30 15:16:10 | [全部帖] [楼主帖] 5  楼

我看有网友测试过,原生态的js比jquery速度还是快蛮多


u=2871144702,1362725177&fm=21&gp=0.jpg.gif


赞(0)    操作        顶端 
hui.chen
注册用户
等级:大校
经验:6070
发帖:48
精华:4
注册:2014-2-7
状态:离线
发送短消息息给hui.chen 加好友    发送短消息息给hui.chen 发消息
发表于: IP:您无权察看 2014-3-30 15:30:11 | [全部帖] [楼主帖] 6  楼

我看有网友测试过,原生态的js比jquery速度还是快蛮多


u=2871144702,1362725177&fm=21&gp=0.jpg.gif


赞(0)    操作        顶端 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-4-2 20:15:02 | [全部帖] [楼主帖] 7  楼

这样哒  ~~~ 倒是学习了



赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-4-18 6:00:59 | [全部帖] [楼主帖] 8  楼

1. 火狐(FF)和IE的脚本代码有不同么?

2. 兼容“雨林木风”这类所谓深度“优化”的客户机系统,对付其Cache,random()因子现在是标配写法了吧?

北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
8
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论