【问题标题】:jQuery - Disable HTML Page until .load calls is donejQuery - 禁用 HTML 页面,直到 .load 调用完成
【发布时间】: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


【解决方案1】:

用 HTML+CSS 阻止,用 jQuery 解除阻止

最好的方法是让您的 HTML 带有覆盖的 DIV,以阻止对页面内容的所有点击。所以它起到了面具的作用。这个遮罩必须使用 CSS 来定位、标注尺寸和设置样式。

当页面加载发生时,您可以使用 jQuery 并删除此掩码,从而启用您的页面。

【讨论】:

    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多