DOM Ready 上的 BlockUI

发布于 2024-12-09 08:14:08 字数 492 浏览 0 评论 0原文

我正在使用 jQuery BlockUI 插件 向需要一些时间的页面添加加载启动画面由于 CAML 查询而加载的秒数。问题是,页面在 BlockUI 显示一瞬间然后消失之前加载。 JS 似乎以错误的顺序执行这些命令,我​​不明白为什么。我可以在代码中更改一些内容吗?还是 BlockUI 不打算在没有 Ajax 的情况下使用?

$(document).ready(function() {
    $.blockUI();
});
$(window).ready(function() {
    $.unblockUI();
});

在 html 标头中,我调用 jquery、blockui 和 common.js 脚本,其中包含 CAML 查询并加载页面元素(按顺序)。 common.js 脚本也在 DOM 上运行,我怀疑这可能是问题的一部分......

I'm using the jQuery BlockUI plugin to add a loading splash to a page that takes a few seconds to load due to CAML queries. The problem is, the page loads before then the BlockUI displays for a split second and disappears. It seems like JS is executing these in the wrong order and I cannot figure out why. Is there something I can change in the code or is BlockUI just not intended to be used without Ajax?

$(document).ready(function() {
    $.blockUI();
});
$(window).ready(function() {
    $.unblockUI();
});

In the html header I call jquery, blockui, and the common.js script that contain the CAML queries and load the page elements (in that order). The common.js script is also run on DOM ready, which I suspect may be part of the problem...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏佲洛 2024-12-16 08:14:08

试试这个:

<html>
    <head>
        <script src="jquery.js"></script>
        <script src="blockui.js"></script>
        <script type="text/javascript">
            $.blockUI();
        </script>
    </head>
    <body>
        …
    </body>
</html>

这应该会在加载任何其他内容之前阻止 UI 方式。

编辑:好吧,我费心去实际查找它...... $.blockUI 支持回调函数。

所以,你可以/应该这样做:

$(document).ready(function() {
    $.blockUI({
        onBlock: function() { 
            // Invoke your CAML stuff here.
        }
    });
});

Try this:

<html>
    <head>
        <script src="jquery.js"></script>
        <script src="blockui.js"></script>
        <script type="text/javascript">
            $.blockUI();
        </script>
    </head>
    <body>
        …
    </body>
</html>

This should block the UI way before anything else has been loaded.

Edit: Okay, I've bothered to actually look it up … $.blockUI supports a callback function.

So, you could/should do this:

$(document).ready(function() {
    $.blockUI({
        onBlock: function() { 
            // Invoke your CAML stuff here.
        }
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文