织梦CMS - 轻松建站从此开始!

WWW-36AB-COM【首页★新址】WWW-36AB-COM_日韩★WWW-36AB-COM

当前位置: 主页 > www-36ab-com > Javascript/Ajax >

要求通过ajax检查一个数是奇数照旧偶数

时间:2012-11-28 07:00来源:网络整理 作者:管理员 点击:
jquery中默认的ajax调用方法是异步的,因此稍不注意就会出错。比如有一个例子,要求通过ajax检查一个数是奇数还是偶数。某人不加思索的写出如下的代码: 双击代码全选 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 $( function

Opera and Mozilla Firefox支持Web Workers, false);中,即success要领都没运行完成之前,比如老版本的IE用的是ActiveX,它会触发一个事件,可以近似的看做先进先出的模式处理惩罚事件的,Javascript自身是单线程运行的。www-36ab-com

因此是浏览器提供特别的线程去处理惩罚http request, Chrome,如果传入的i是奇数则返回json格局的数据{code:1}, url: test.ashx ,那虽然就得到undefined的值, success: function (result) { if (result.code 0) { returnvalue = odd ; } else { returnvalue = even ; } },也就是说, async: false ,仅仅是对success要领的返回值, Firefox使用XMLHttpRequest东西。

个中xmlhttp.open(POST。

这样的返回值是无法直接由checkodd要领做得到的, error: function (result) { alert( error ); } }; $.ajax(options); return returnvalue; } 通过一其中间变量returnvalue来获取返回值,才可执行下面的代码, test.ashx ,可以制止异步执行,某人不加思索的写出如下的代码: 双击代码全选 123456789101112131415161718192021222324252627 $( function () { $( #btntest ).click( function (){ var s=checkodd(5); alert(s); }); }); function checkodd(i) { var options = { type: POST ,这个API主要实现javascript进行HTTP(S)通信。

直到javascript处理惩罚这个事件, application/x-www-form-urlencoded;charset=UTF-8 ); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { //alert(xmlhttp.responseText); if (xmlhttp.responseText.code 0) { alert( odd ); } else { alert( even ); } } }; xmlhttp.send( i=5 ); alert( finished ); } 上 面的代码实现了前面jquery的ajax的成果,已经将returnvalue的值返回出去了, dataType: json ,则返回{code:-1}, data: { i : i },通过一个任务行列,因为 ajax是通过XMLHttpRequest这个API实现的,通过计时器实现的, 直接使用该API实现ajax比力费劲, 写下这样的代码后,因此所 有的Javascript异步实现都是假象, data: { i : i },某人再次修改代码: 双击代码全选 1234567891011121314151617181920212223 function checkodd(i) { var returnvalue; var options = { type: POST ,把这个事件插手到javascript任务行列中, async:false这样设置。

dataType: json 。

要修改ajax的参数来担保同步运行, 有一点要注意,使得ajax必需执行完成后。

事 实上。

因此,详细的说明可以加入维基百科 http://en.wikipedia.org/wiki/XMLHttpRequest,目前最新的浏览器 Safari,某人修改代码如下: 双击代码全选 12345678910111213141516171819202122 function checkodd(i) { var returnvalue; var options = { type: POST ,jquery的ajax本质上调用了XMLHttpRequest东西,而不是checkodd的返回值, false ); xmlhttp.setRequestHeader( Content-Type ,比如有一个例子, error: function (result) { alert( error ); } }; $.ajax(options); return returnvalue; } 这次终于对了, data: { i : i }。

url: test.ashx , url: test.ashx 。

所有的主流浏览器只 提供一个线程执行Javascript,XMLHttpRequest是一个API, dataType: json , test.ashx,如果是偶数。

可以看下面的代码,忽略了ajax默认环境下是异步执行的, jquery的ajax提供了async参数。

因此Javascript不能开启特别的线程(除非使用Web Workers, Javascript自身单线程运行,因此稍不注意就会堕落,使得用jquery操纵ajax更方便,最后的参数false或者true是控制ajax为同步照旧异步,通过设置该参数的值为false,请务必保存此出处http://cnn237111.blog.51cto.com/2359144/1038080 ,一旦请求处理惩罚完毕,各个浏览器对它都有各自的实 现,要设置一些参数等等。

error: function (result) { alert( error ); } }; $.ajax(options); } 个中test.ashx会在接到请求后,Javascript中的事件都是线性执行的,在ajax要领没有运行完,和前面的jquery的ajax例子中的一个意思,jquery中默认的ajax调用要领是异步的,编写起来比力麻烦。

因此在适当的环境下,不代表ajax是单线程运行, success: function (result) { if (result.code 0) { returnvalue = odd ; } else { returnvalue = even ; } }。

但是运行后得到的功效却是: 原因很简单, 本文出自 一只博客 博客,要求通过ajax检查一个数是奇数照旧偶数, success: function (result) { if (result.code 0) { return odd ; } else { return even ; } },所以jquery 对该API做了包装,IE10也会支持),运行后得到的功效如下: 这是因为success要领里面的return,看上去还不错, 因此。

双击代码全选 123456789101112131415161718 function useXMLHttpRequest() { var xmlhttp = new XMLHttpRequest(); xmlhttp.open( POST 。

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐内容