Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как сделать чтобы код выполнялся асинхронно? (https://javascript.ru/forum/dom-window/71008-kak-sdelat-chtoby-kod-vypolnyalsya-asinkhronno.html)

денис77447327 18.10.2017 17:47

как сделать чтобы код выполнялся асинхронно?
 
как сделать чтобы код выполнялся асинхронно? без setTimeout. к примеру мне нужно кликнуть по элементу на странице а затем перезагрузить страницу

Nexus 18.10.2017 17:51

Что значит "асинхронно"?

денис77447327 19.10.2017 10:42

сверху вниз. не начиналась одна функция пока не закончиться другая

Nexus 19.10.2017 10:51

Вона как.
Лучше не используйте это слово, если вкладываете в него этот смысл.

<a href="#url" id="link" onclick="alert('Click');">some link</a>
<script>
document.getElementById('link').dispatchEvent(new Event('click'));
alert('Page reload');//location.reload();
</script>

денис77447327 19.10.2017 11:07

document.getElementById('chatnow').click();


document.getElementById('messages_close').click()

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

Nexus 19.10.2017 11:21

денис77447327, нажимайте на вторую ссылку после отображения блока.

<a href="#" id="show_btn">Show</a>
<div style="display:none" id="block">
	some text
</div>
<a href="#" id="link" onclick="alert('Click');">Some link</a>
<script>
	function getByID(id){
		return document.getElementById(id);
	};
	
	getByID('show_btn').addEventListener('click',function(){
		//Анимацию заменил на timeout
		setTimeout(function(){
			getByID('block').style.display='block';
			alert('Timeout');
			
			getByID('link').dispatchEvent(new Event('click'));
		},100);
	});
</script>


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