您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

jQuery 简化指南:探索 jQuery 和 Ajax

2024/3/22 20:39:40发布19次查看
jquery ajax() 函数是最低级别的抽象jquery ajax() 函数是可用于 xmlhttprequest(又名 ajax)的最低抽象级别。所有其他 jquery ajax 函数(例如 load())都利用 ajax() 函数。使用 ajax() 函数为 xmlhttprequests 提供了最强大的功能。 jquery 还提供了其他更高级别的抽象来执行非常特定类型的 xmlhttprequests。这些函数本质上是 ajax() 方法的快捷方式。
这些快捷方法是:
加载()get()getjson()getscript()post()需要注意的是,虽然快捷方式有时很好,但它们都在幕后使用 ajax() 。而且,当您需要 jquery 在 ajax 方面提供的所有功能和自定义功能时,您应该使用 ajax() 方法。
注意:默认情况下,ajax() 和 load() ajax 函数均使用 get http 协议。
jquery 支持跨域 jsonp带有填充的 json (jsonp) 是一种技术,允许 http 请求(返回 json)的发送者为使用 json 对象作为函数参数进行调用的函数提供名称。该技术不使用 xhr。它使用脚本元素,因此可以将数据从任何站点拉入任何站点。目的是为了规避xmlhttprequest的同源策略限制。
使用 getjson() jquery 函数,当 url 中添加 jsonp 回调函数时,您可以从另一个域加载 json 数据。作为示例,以下是使用 flickr api 的 url 请求的样子。
http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&tagmode=all&format=json&jsoncallback=?
? 值用作快捷方式,告诉 jquery 调用作为 getjson() 函数的参数传递的函数。如果您不想使用此快捷方式,可以将 ? 替换为另一个函数的名称。
下面,我使用 flickr jsonp api 拉入一个网页,其中包含带有“resig”标签的最新照片。请注意,我使用的是 ? 快捷方式,因此 jquery 将简单地调用我提供的 getjson() 函数的回调函数。传递给回调函数的参数是请求的json数据。
<!doctype html><html lang=en><body> <script src=http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js></script> <script> (function($){ $.getjson(http://api.flickr.com/services/feeds/photos_public.gne?tags=resig&amp;tagmode=all&amp;format=json&amp;jsoncallback=?, // using ? just means call the callback function provided function (data) { // data is the json object from flickr $.each(data.items, function (i, item) { $('<img />').attr(src, item.media.m).appendto('body'); if (i == 30) return false; }); }); })(jquery); </script></body></html>
注意:请确保检查您所使用的服务的 api 以便正确使用回调。例如,flickr 使用名称 jsoncallback=?,而 yahoo!和 digg 使用名称 callback=?。
停止浏览器缓存 xhr 请求执行 xhr 请求时,internet explorer 将缓存响应。如果响应包含具有较长保质期的静态内容,则缓存可能是一件好事。但是,如果请求的内容是动态的并且可能随时发生变化,您将需要确保浏览器不会缓存该请求。一种可能的解决方案是将唯一的查询字符串值附加到 url 的末尾。这将确保浏览器对于每个请求请求唯一的 url。
// add unique query string at end of the urlurl: 'some?nocache='+(newdate()).gettime()
另一个解决方案(更多的是全局解决方案)是默认设置所有 ajax 请求以包含我们刚才讨论的无缓存逻辑。为此,请使用 ajaxsetup 函数全局关闭缓存。
$.ajaxsetup({ cache: false // true by default. false means caching is off.});
现在,为了用单独的 xhr 请求覆盖此全局设置,您只需在使用 ajax() 函数时更改缓存选项即可。下面是使用 ajax() 函数执行 xhr 请求的代码示例,该函数将覆盖全局设置并缓存请求。
$.ajaxsetup ({ cache: false // true by default. false means caching is off. }); jquery.ajax({ cache: true, url: 'some', type: 'post' } );
以上就是jquery 简化指南:探索 jquery 和 ajax的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product