【发布时间】:2023-03-22 18:02:01
【问题描述】:
在初始 .load 调用完成之前禁用整个 HTML 页面的最简单方法是什么? 我所说的禁用是指用户不能以任何方式与之交互。他们可以离开。
我正在使用 jQuery 1.2.6。是否将调用设置为同步而不是异步?您如何在 .load 函数上为此设置选项?
更新
这似乎奏效了 - 我是不是跑题了?
function doSomething() {
$.ajaxSetup({ async: false });
$('#someArea').load('... args ...');
$.ajaxSetup({ async: true });
}
【问题讨论】:
-
这只适用于某些浏览器吗?
-
它可以在 jQuery 支持的所有浏览器中运行,但对于用户来说非常烦人,因为浏览器看起来像“冻结”,感觉像是被窃听了。在某些情况下,如果您想显示某件事正在实际发生,您甚至无法显示动画 GIF。
-
它是一个写得很糟糕的遗留应用程序。等到 Ajax 响应完成这一件事是我们必须在完成之前处理用户更改另一个下拉列表的最佳解决方法。我很想使用趋势答案,但已经有很多虚假的模态对话框和停电 div。这个应用程序一团糟。
-
我想我应该添加这个只会将界面冻结 1/2 到 1 秒。不理想,我同意。
标签: javascript jquery html ajax asynchronous