Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Запуск скрипта через 5 секунд (https://javascript.ru/forum/events/35546-zapusk-skripta-cherez-5-sekund.html)

Marakaya 14.02.2013 12:37

Запуск скрипта через 5 секунд
 
Доброго времен, уважаемые форумчане. Помогите пожалуйста мне по такому вопросу. Есть скрипт слайдера, который я подцепляю внизу страницы, который нужен для работы слайдера(хотя это и есть сам слайдер). Как сделать чтобы он подгрузился не сразу, а через 5 секунд?

Вот две строки кода:
<script type="text/javascript" src="engine1/wowslider.js"></script>
<script type="text/javascript" src="engine1/script.js"></script>

DjDiablo 14.02.2013 13:02

скорее всего вам ненужна задержка по времени, я предполагаю что вы таким образом готовности чего то пытаетесь дождаться. В таких случаях запуск должен происходить тогда когда всё готово для запуска, а не через жёстко заданный интервал времени. Это значит что задержка по времени будет худшим из возможных решений.

Собственно по задержке.

пример 1) отложенная загрузка скрипта
<script type="text/javascript" src="engine1/script.js"></script>

пишем
<script>
    setTimeout(function(){
        $.getScript("engine1/script.js");
    },5000)
</script>


пример2) отложенная инициализация.
//в скрипте должна быть прописана какаято функция которую можно вызвать и этот вызов считается запуском 
<script type="text/javascript" src="engine1/script.js"></script>
<script>
    setTimeout(function(){
       myFunction();//вызов функции из скрипта.
    },5000)
</script>

danik.js 14.02.2013 13:04

Вам помогут:
window.setTimeout( .. )
document.createElement('script')
document.body.appendChild( .. )

А вобще, задача странная какая-то. Наверняка решается другим более простым способом.

danik.js 14.02.2013 13:08

Опоздал )
DjDiablo, а что не так со вторым способом?

Marakaya 14.02.2013 13:14

Вложений: 1
Попробовал вариант, за который нужно убивать, ничего не вышло, слайдер не запустился. Вообще запускать этот слайдер нужно после того, как пройдет флеш заставка, так как работаю вместе флеш просто ужасно тормозит. А если слайдер не работает - лагов нет. Думаю лучше будет в конце из флеша включить функцию запуска слайдера, но как этот слайдер оформить в одну функцию, я пока не умею. Если есть свободно время - гляньте пожалуйста код этих двух скриптов.
Пы.Сы. не предлагайте использовать другой слайдер :no: С таким эффектом я нашел только этот...

Marakaya 14.02.2013 13:22

В конце флешки у меня стоит вызов функции
getUrl("javascript:closeblock();"

Функция эта убирает флешку, как я понимаю, перед ней нужно воткнуть функцию запуска слайдера...а как эту функцию сделать ?)

DjDiablo 14.02.2013 13:50

Цитата:

а что не так со вторым способом?
Он не к месту если нужно чего то дождаться, к примеру загрузки чего нибудь. Так как таймер может сработать либо раньше подходящего момента, либо наоборот позже.

Цитата:

getUrl("javascript:closeblock();")
ай да молодца, это единственное правильное решение.

если closeblock это функция в каком то скрипте, а я уверен что это так. То вызове вместо него какойнибудь onStart();

getUrl("javascript:onStart();
function onStart(){
  closeblock();
  alert('привет я onStart');
  //а тут мы запустим слайдер 
}


Цитата:

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

Marakaya 14.02.2013 13:57

Блин, проблема в том, что флешка проигрывается один раз в одной сессии, а если человек зайдет на страницу со слайдером с другой страницы, в рамках одно сессии то он не увидит рабочего слайда, так как 2 скрипта не подгрузятся без проигрывания флешки, которая, проигрывается лишь раз) Как то всё запутано написал). Короче, привязывать функцию с флешкой нельзя, нужно просто включить её на сайте через время, лучше уж пусть она работать начнет немного раньше, до закрытия флешки, чем будет работать всё время заставки. Подскажите как просто добавить 2 куска этого кода через N секунд...

Marakaya 14.02.2013 14:01

Цитата:

Сообщение от danik.js (Сообщение 233878)
Вам помогут:
window.setTimeout( .. )
document.createElement('script')
document.body.appendChild( .. )

А вобще, задача странная какая-то. Наверняка решается другим более простым способом.

Я ещё не дошел до синтаксиса javascript'а, подскажите как в эту конструкцию ставить <script type="text/javascript" src="engine1/wowslider.js"></script>

DjDiablo 14.02.2013 14:04

дак ведь показали уже
alert("закройте меня и следующий alert увидите только через 5 секунд");
 setTimeout(function(){
     alert("5 секунд прошло" );
},5000)


впрочем я смотрю в js вы не бум бум.
А слайдер конструктором сделали да ? http://wowslider.com/


Часовой пояс GMT +3, время: 14:05.