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