从 jQuery 1.8 开始,不推荐使用jQuery.ajax()async:false中的。 但是,在后台正在进行 AJAX 通信的情况下,您见过多少带有“加载屏幕”的网页?我可能见过成千上万的人。
我的情况是我正在编写一个需要加载语言文件的移动应用程序。一开始我加载语言文件,然后从语言文件中检索按钮和其他 GUI 元素的文本。
这对我来说真的很糟糕。因为如果缺少语言文件,则不应出现 GUI。那么我该如何解决呢?将我所有的代码放在success回调中?对我来说,这似乎不是一个好的编码实践。我可以用另一种方式解决吗?
解决方案是手动添加一个覆盖以防止用户与界面交互,然后在 AJAX 查询完成后将其删除。
$(function() { show_overlay(); $.ajax({ // Query to server }).done(function() { // Verify good data // Do stuff remove_overlay(); }); });