当前位置:  开发笔记 > 前端 > 正文

Jquery $ .ajax async奇怪的行为

如何解决《Jquery$.ajaxasync奇怪的行为》经验,为你挑选了1个好方法。

我有这样的代码片段

var searchurl="http://mysite.com/searchpath?q=test";
$.ajax({
   type: "GET",
   url: searchurl,
   cache: false,
   dataType : "jsonp",
   async : false,
   success: function(data){
        alert("success");
   }
});
alert("outside ajax");

问题是我在工作中没有看到异步."ajax之外"是我得到的第一个弹出窗口,第二个是"成功"弹出窗口.有什么明显的东西让我失踪吗?

从我的评论中加入Anothny的回复

我的测试环境是win xp sp2,FF 3.0.8/w Firebug + IE 8.和JQuery v1.3.2.我从萤火虫身上找不到任何明显的东西.

您是否愿意使用此网址尝试上述代码" http://pipes.yahoo.com/pipes/pipe.run?_id=1nWYbWm82xGjQylL00qv4w&_render=json&textinput1=obama&_callback=?"



1> Julian Aubou..:

好吧,你不能有一个同步的jsonp请求.实现jsonp的方式是通过脚本标记hack来允许跨域访问.所以$ .ajax只是忽略了异步属性,因为它不能发出同步的jsonp请求.

作为旁注,您应该尝试避免同步ajax请求.虽然它们在设计上看起来可能看起来更简单,但是在网络保留的情况下它们最终会冻结浏览器并且会产生非常不愉快的用户体验.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有