Можем ли мы скрыть загрузку javascript от пользователя?

StackOverflow https://stackoverflow.com/questions/1000718

  •  05-07-2019
  •  | 
  •  

Вопрос

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

window.onload=myFunction;

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

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

Это было полезно?

Решение

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

<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 будет готов, и вам не придется ждать, пока будут загружены все изображения.

Другие советы

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

$(document).ready(function() {
  //Call your function here
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top