jQuery对Ajax的支持.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 jQuery 有 ajax 的支持,我应用的情况是:需要在ajax请求的对象中附加自己的数据 本来jQuery ajax 方法中要传递的对象都是事先规划好的,每一个参数都有jQuery的操作意义,如果在应用中需要附加自己的参数,当然要命名新的KEY,比如:伪代码 Js代码 jQuery.ajax({MyData:mydata,其他jqueryajax参数})?? jQuery.ajax({MyData:mydata,其他jqueryajax参数}) ? 这里的MyData参数就是自己应用中需要传递的参数对象,且不讨论要传送什么,这个需求有可能有的。 问题: 如果这个MyData的对象是一个复杂的含有循环引用的对象的话,有可能造成与jQuery ajax 方法内部实现的冲突。 因为在jQuery ajax 内部实现中对ajax的参数对象进行了深度的扩展,我们知道javascript的深度扩展实现中要避免循环引用的状况,这种情况会造成死递归循环发生,这一点看jQuery的ajax实现代码就可以知道问题所在: Js代码 ajax:?function(?s?)?{ ?? ????????//?Extend?the?settings,?but?re-extend?s?so?that?it?can?be ?? ????????//?checked?again?later?(in?the?test?suite,?specifically) ?? ????????var?MyData=s.MyData;//改造后的代码 ?? ????????if(MyData)?delete?s.MyData;//改造后的代码 ?? ????????s?=?jQuery.extend(true,?s,?jQuery.extend(true,?{},?jQuery.ajaxSettings,?s)); ?? ????????if(MyData)?s.MyData=MyData;//改造后的代码 ?? //省略 ?? }?? ajax: function( s ) { // Extend the settings, but re-extend s so that it can be // checked again later (in the test suite, specifically) var MyData=s.MyData;//改造后的代码 if(MyData) delete s.MyData;//改造后的代码 s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s)); if(MyData) s.MyData=MyData;//改造后的代码 //省略 } ? 可见如果是循环引用的参数附加到ajax方法中必定造成extend的死循环。通过改造后,可以避免这一状况的发生。 开源就是有这点优势。 备注: 这完全是笔者省事的做法,如有其它更标准的方法请明示 jQuery扩展ajaxName,用于ajax提交方法的页面数据获取,根据页面元素的name生成相应的js对象,然后可以把这个对象传给JSON编码库进行编码向后台提交,支持数组,支持.表达式 ? Js代码 /* ? ?*?jQuery?Ajax?By?Name?Plugin ? ?* ? ?*?licensed?under?the?MIT?licenses: ? ?*???/licenses/mit-license.php ? ?* ? ?*?Author?achun?(achun.shx?at?) ? ?*?Create?Date:?2008-6-21 ? ?*?Last?Date:?2008-6-21 ? ?*?Revision:1 ? ?*/?? (function($)?{ ?? /** ? ?*?获取鼠标点击的元素坐标 ? ?*/? ?? $.fn.clickPos?=?function(e){ ?? ??var?pos?={x:0,y:0}; ?? ??if?(e.offsetX?!=?undefined)?{ ?? ????pos.x?=?e.offsetX; ?? ????pos.y?=?e.offsetY; ?? ??}?else?if?(typeof?$.fn.offset?==?function)?{ ?? ????var?offset?=?this.offset(); ?? ????pos.x?=?e.pageX?-?offset.left; ?? ????pos.y?=?e.pageY?-?offset.top; ?? ??}?else?{ ?? ?

文档评论(0)

df829393 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档