|
Динамическое обновление страницы.
Добрый день.
Я новечек в js. Сделал статичный веб. Задача диначески обновлять по каждой ссылки мгновенные данные, поступающие с датчиков, и отображать в таблицы. Таблицы выводить на экран. Создал скрытый DIV. В него вывожу данные. Кликаю по менюшке, данные выводятся, но безконечно - вечно. Нашел стандартный скриптик. Его прикрутил.
<script type="text/javascript">
function allstation() {
$.ajax({
url: 'allstation.php',
success: function(data) {
$('#display').html(data);
}
});
}
var timeInterval = 5000;
setInterval(allstation, timeInterval);
</script>
На каждую кнопку повесил данный скрипт. Скрипт стартует сам, если убрать setInterval(allstation, timeInterval); то нормально нажатие, но тогда не обновляется контент постоянно. Мне надо выход из (простите за делитантизм) из setInterval при нажатии на другую кнопку. Как я понимаю: 1) нужно использовать clearInterval. 2) показывать скрипту, что он в процессе inProcess, чтобы не было автостарта при setInterval Помогите пожалуйста, поправить данный скрипт. |
Saratov64,
var timer = setInterval(allstation, timeInterval);
clearInterval(timer);
|
Цитата:
чтобы отследить изменения
<?php echo date("H:i:s"); ?>
<script type="text/javascript">
function allstation() {
$.ajax({
url: 'allstation.php',
success: function(data) {
$('#display').html(data);
}
});
}
var timer = setInterval(allstation, timeInterval);
clearInterval(timer);
</script>
молчит ((((( |
Saratov64,
clearInterval(timer); вам нужно добавить в то место где вы хотите остановить интервал. в целом это был совет наугад, не понимаю что вам нужно. |
Цитата:
<script type="text/javascript">
function allstation() {
alert ("ТЕСТ");
}
var timer = setInterval(allstation, timeInterval);
clearInterval(timer)
</script>
МОЛЧОК Разово выполняет и все. |
Цитата:
Мне бы хотелось целый код, так как я в js новечек, мне сложно будет, понять где добавить. цель: при нажатии на кнопку, запускает функция, и выполняет опрос базы данных (мгновенные данные которые заливаются в бд), каждые 10 секунд, и выводить в таблицу. Нужно, при нажатии на ДРУГУЮ ЛЮБУЮ КНОПКУ, прирывать выполнения функции function allstation(). Если можно на примере с alert. Нажал на кнопку, каждые 10 сек, появляется сообщение, нажал на другую кнопку, данное сообщение прирывалось. Получается, надо какое-то условие, для прерывания выполнения данной функции. if (click.document), если я правильно понял при любом клике на ДРУГИЕ ССЫЛКИ в документе, прирывать выполнение функции данной кнопки ..... хотя, я может не правильно ставлю себе задачу, по работе функции данной ... |
Saratov64,
$("ДРУГУЮ ЛЮБУЮ КНОПКУ").on("click", function() {
clearInterval(timer)
})
|
Saratov64,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
window.addEventListener("DOMContentLoaded", function() {
var btn = document.querySelector("#btn");
btn.addEventListener("click", function() {
clearInterval(timer)
});
function allstation() {
document.querySelector("#main").innerHTML += "test "
}
var timeInterval = 1E3;
var timer = setInterval(allstation, timeInterval)
});
</script>
</script>
</head>
<body>
<div id="main"></div>
<input id="btn" name="" type="button" value="stop">
</body>
</html>
|
Цитата:
спасибо большое. Вообщем, надо с нуля за учебник, каждую мелочь не спросишь. еще раз спасибо !!! |
Цитата:
написал свой код который стартует по кнопке, и остановливается по другой кнопке. Но проблема и вопрос в том, если перменные снаружи, вне функции, то функция стартует автоматически при загрузке страницы, и ее можно остановить с помощью clearInterval(timer); А вот если переменные setInterval спрятать внутри функции то, она стартует ПРАВИЛЬНО по клику кнопки, но нифига не работает останов. Как буд-то id не видит, или еще какой-то нюанс который я не понимаю в теории событий javascript. Если можно, поясните пожалуйста, как это работает.
<script type="text/javascript">
var timer
var timeInterval = 5000;
timer = setInterval(allstation, timeInterval);
function allstation() {
$("#display").load('allstation.php');
}
$("#stp").click(function(){
clearInterval(timer);
alert ("stop");
});
</script> |
| Часовой пояс GMT +3, время: 12:48. |
|