BlockUI на DOM готов - PullRequest
       6

BlockUI на DOM готов

2 голосов
/ 10 октября 2011

Я использую плагин jQuery BlockUI , чтобы добавить всплеск загрузки на страницу, загрузка которой занимает несколько секунд из-за запросов CAML. Проблема в том, что страница загружается до , затем BlockUI отображается на доли секунды и исчезает. Кажется, JS выполняет их в неправильном порядке, и я не могу понять, почему. Что-то я могу изменить в коде или BlockUI просто не предназначен для использования без Ajax?

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

В заголовке html я вызываю jquery, blockui и скрипт common.js, которые содержат запросы CAML и загружают элементы страницы (в таком порядке). Сценарий common.js также запускается на DOM ready, что, я подозреваю, может быть частью проблемы ...

1 Ответ

3 голосов
/ 10 октября 2011

Попробуйте это:

<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.
        }
    });
});
...