Скрыть мобильную страницу jQuery при первой загрузке до полной загрузки


При первой загрузке домашней страницы моего веб-сайта на основе jQuery Mobile она появляется примерно за 1 секунду до обработки jQuery Mobile, затем страница становится пустой на 1 секунду, а затем выполняется окончательный рендер страницы, позволяя последней странице появиться. Это дает своего рода эффект мигания, которого я хочу избежать, особенно потому, что для exemple все элементы, которые jQuery Mobile нужно разобрать, видны в течение первой секунды (например, всплывающее окно не скрыто и т. д.).

Я попробовал с другие мобильные веб-сайты jQuery, и они, кажется, не имеют этой проблемы. Есть ли конфигурация или что-то еще ? Если это не так, я хотел бы скрыть страницу, пока она не будет полностью загружена.

Заранее благодарю.

2 4

2 ответа:

Вы можете использовать display none в теле, а затем привязать прослушиватель событий для pageinit на первой странице.

Пример:

HTML:

<body style="display:none">
<div id="#start" data-role="page"></div>
</body>

JS:

$("#start").one("pageinit",function(){
    $("body").show();
});

Это то, что я сделал, но это не хорошо для людей, которые отключают JS. Поэтому я делаю то же самое, но скрываю тело через javascript сразу после открытия тега body.

<body>
    <script type="text/javascript">
document.body.style.display = 'none';
</script>
...
</body>