Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с потоком. Вывод сообщения (https://javascript.ru/forum/misc/59087-rabota-s-potokom-vyvod-soobshheniya.html)

annie88 27.10.2015 14:09

Работа с потоком. Вывод сообщения
 
Здравствуйте!

У меня такой вопрос, можно ли в js организовать прерывание выполнения потока(допустим нужно вывести пользователю сообщение(не alert) на какое-то время), а после снова его запустить?

ksa 27.10.2015 14:33

Цитата:

Сообщение от annie88
можно ли в js организовать прерывание выполнения потока

Это может сделать только модальное окно...
Цитата:

Сообщение от annie88
не alert

prompt()? confirm()? :D

annie88 27.10.2015 14:44

Цитата:

Сообщение от ksa
prompt()? confirm()?

ни то ни другое :)
Как я поняла задачу, необходимо, чтобы пользователю демонстрировалось сообщение (по типу картинки) , которое бы занимало всю страницу. Затем по прошествии какого-то времени сообщениеисчезает и пользователь видит основную страницу

ruslan_mart 27.10.2015 14:46

annie88, можно просто растянуть фиксированный блок во весь экран с z-index: 1, и по setTimeout его скрыть.

ksa 27.10.2015 14:48

Цитата:

Сообщение от annie88
чтобы пользователю демонстрировалось сообщение (по типу картинки) , которое бы занимало всю страницу. Затем по прошествии какого-то времени сообщениеисчезает и пользователь видит основную страницу

Т.е. остановить поток не нужно?

annie88 27.10.2015 15:00

Цитата:

Сообщение от ksa
Т.е. остановить поток не нужно?

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

annie88 27.10.2015 15:03

Ruslan_xDD,
спасибо, я думала об этом, однако у меня в программе использовано столько setTimeout-ов и setInterval, что я и прикасаться к ним боюсь, они какие-то непостоянные :-?. Хотя...

ruslan_mart 27.10.2015 15:05

annie88, ну новый setTimeout ставишь и всё, они же по отдельности работают. Ну, а поток, увы, остановить не получится.

ksa 27.10.2015 15:05

Цитата:

Сообщение от annie88
по-хорошему можно было бы показать пользователю то, чем он остановился

Остановить поток может только действительно модальное окно. Все остальное чисто муляж... Имитация...

ruslan_mart 27.10.2015 15:22

ksa, можно через цикл остановить и внутри него проверять время и т.д., потом break, но только во время всего этого браузер будет жёстко тупить или вообще зависнет.

ksa 27.10.2015 15:27

Цитата:

Сообщение от Ruslan_xDD
можно через цикл остановить

Сильно сомневаюсь... :D Ибо
Цитата:

Сообщение от Ruslan_xDD
во время всего это браузер будет жёстко тупить или вообще зависнет


ksa 27.10.2015 15:34

Вот пример с модальным окном и циклом...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
window.onload=function(){
	document.getElementById('info').innerHTML='Поток остановлен';
	alert('Test');
	document.getElementById('info').innerHTML='А так - фикушки';
	for (var i=0; i<1000000000; i++) {};
	document.getElementById('info').innerHTML='Все.';
};
</script>
</head>
<body>
<div id='info'></div>
</body>
</html>

Четко видно, что на время цикла никаких изменений на странице не видно.

nerv_ 27.10.2015 15:37

Цитата:

Сообщение от Ruslan_xDD
можно через цикл остановить

кому, как не девушке понимать, что прерывание цикла ничего хорошего не сулит :)

annie88 27.10.2015 15:49

Цитата:

Сообщение от ksa
Остановить поток может только действительно модальное окно

а модальное окно мне не подходит...

annie88 27.10.2015 16:01

Огромное спасибо всем))))
Я решила сделать так как посоветовал Ruslan_xDD, т.е просто буду скрывать\показывать блок с нужной картинкой)))) а период демонстрации сообщения подгоню такой, что пользователь увидит ту же самую страницу, что и до запуска)))

ksa 27.10.2015 16:02

Цитата:

Сообщение от annie88
а модальное окно мне не подходит...

Значит поток тебе не остановить. :)

Придумывай другой подход.

annie88 27.10.2015 16:04

Цитата:

Сообщение от ksa
Значит поток тебе не остановить.

Придумывай другой подход.

придется идти по течению :)

ksa 27.10.2015 16:05

Цитата:

Сообщение от annie88
придется идти по течению

И разделять потоки... ;)


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