Устранение проблемы с загрузкой страницы во время выполнения jQuery - PullRequest
3 голосов
/ 07 октября 2009

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

Я использую jQuery, предоставляемый API Google на странице следующим образом:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.3.2");
</script>
<script type="text/javascript" src="MyScript.js"></script>

В MyScript.js:

google.setOnLoadCallback(runOnLoad);    
function runOnLoad() {
    // Do stuff
}

Кто-нибудь знает, можно ли запустить JavaScript до отображения страницы в браузере?

Ответы [ 2 ]

7 голосов
/ 07 октября 2009

Вы могли бы, вероятно, добавить класс css в свой основной div, который бы скрывал содержимое, а затем удалить этот класс как последнее, что делает MyScript.js.

В вашем HTML-шаблоне:

<body>
    <div id="mainContent" class="hidden">
    </div>
</body>

Класс css:

.hidden
{
    display: none;
}

Последнее выполненное выражение MyScript.js:

$("#mainContent").removeClass("hidden");
0 голосов
/ 07 октября 2009

Я бы согласился с Яном.

Большинство (не все) браузеры сначала загружают CSS перед javascripts. Так что CSS был бы желательным для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...