默认情况下,jQuery中的$ .ajax请求设置为异步。 变量名是async,并且值设置为true。 第一次学习它时,这也给我带来了一些困惑,所以让我们开始吧。
异步与同步
jQuery中的默认设置。 以我的经验,异步几乎总是可以解决问题。 特别是还有2种情况甚至不允许同步调用。
- 跨域请求。 如果我正在从techjunkie.com向awhere.com(完全不同的域)上的文件发出ajax请求,那将是跨域请求。
- jsonp –如果您要跨域检索JSON数据,则需要JSONP。
何时使用同步
您首先应该意识到,将async设置为false会冻结浏览器。 它完全锁定了它。 不仅是您的页面,而且用户可能打开的每个页面。 例如,如果服务器在请求过程中减慢了速度,则您实际上已禁用了其浏览器,直到服务器有机会赶上并传递所需的数据。
不必冒险进行同步调用,只需在成功或错误时指定一个回调函数。 您可以到达相同的端点,而不会破坏用户的浏览体验。 简而言之,不要使用同步呼叫。 这对您的应用程序和UX不利。
