2

jQuery BlockUIプラグインを使用して、CAMLクエリが原因で読み込みに数秒かかるページに読み込みスプラッシュを追加しています。問題は、ページが読み込まれる前に、BlockUIが一瞬表示されて消えることです。JSがこれらを間違った順序で実行しているようで、理由がわかりません。コードに変更できるものはありますか、それともBlockUIはAjaxなしで使用することを意図したものではありませんか?

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

htmlヘッダーで、CAMLクエリを含むjquery、blockui、およびcommon.jsスクリプトを呼び出し、ページ要素を(この順序で)ロードします。common.jsスクリプトもDOM対応で実行されますが、これが問題の一部である可能性があります...

4

1 に答える 1

3

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.
        }
    });
});
于 2011-10-10T15:49:14.443 に答える