Можем ли мы скрыть загрузку JavaScript от пользователя? - PullRequest
0 голосов
/ 16 июня 2009

Если у меня есть страница, которая генерируется с использованием PHP, а затем модифицируется с использованием JS, которая выполняется с использованием:

window.onload=myFunction;

Затем пользователь видит исходную страницу, которая, по-видимому, переворачивается при запуске кода js и добавляет на страницу свои собственные биты.

Есть ли способ избежать того, чтобы пользователь мог видеть этот процесс, или, по крайней мере, сделать его менее очевидным для него? Может быть, есть более подходящий способ загрузки javascript, чем window.onload (который может начать работать при загрузке изображений и т. Д.)?

Ответы [ 2 ]

3 голосов
/ 16 июня 2009

Я бы порекомендовал сначала настроить класс на теле, который будет переключать видимость некоторых элементов.

<body class="loading"> .... </body>

Затем, когда скрипт завершит загрузку, вы можете удалить этот класс и показать все, что вам нужно. Вы даже можете использовать класс «loading», чтобы показать какой-то необычный фон, например, вращающийся круг точек в Mozilla.

Также некоторые проекты используют другой метод загрузки скриптов вместо «onLoad». Сначала вы создаете глобальный массив, скажем, с именем «domReady».

window.domReady = [];

И когда вам нужно добавить некоторую функцию, которая будет запускаться при загрузке страницы, вы просто помещаете ее в этот массив:

window.domReady.push( function foo(){ alert('Hey!'); } );

И в последнюю строку документа вы помещаете функцию, которая будет запускать все нажатые процедуры:

for (procedure in window.domReady) {
    window.domReady[procedure].call();
}

Так как это будет последняя строка документа перед закрывающим тегом, DOM будет готов, и вам не придется ждать, пока все изображения будут загружены.

0 голосов
/ 16 июня 2009

ОК, я нашел этот маленький кусочек jquery, который работает удовольствие:

$(document).ready(function() {
  //Call your function here
});
...