Всем привет. Такая трабла возникла.
Есть список чего либо, который обновляется раз в сек.
Нужно, что бы когда пользователь переходит на другую стр, допусти вторую, обновление отключалось, но когда вновь переходит на 1, оно включалось.
Код типа такого.
<?
function spisok()
{
$.ajax({
url: "/spisok",
cache: false,
success: function(html){
$("#spisok".html(html);
}
});
}
spisok();
var sp = setInterval(function(){spisok();}, 1000); //включаем обновление раз в сек
function nav(page)
{
$.ajax({
type: "GET",
url: "/spisok",
cache: false,
data:{p: page},
success: function(html){
$("#spisok".html(html);
clearInterval(sp); //убиваем это обновление
}
});
}
?>
Ну и вот трабла в том, что когда пользователь открывает след. страницу, обновление убивается, все как и надо.
Но как включить его обратно, я догнать не могу.
Пробовал через условие сделать в nav
if(page==1)
var sp = setInterval(function(){spisok();}, 1000);
}else{
clearInterval(sp);
}
Но обновления включается не зависимо от page. Хоть оно 2, хоть оно 10, все равно врубится.
Помогите пжлс За код не пинайте, 3 день только ajax шарю. Если есть варианты более простые, или другие но рабочие, подскажите пожалуйста
Добавлено 04.03.17 в 14:58:24:
А еще я вставил все в тег <? ?> что бы смайлы не вставлялись
Добавлено 04.03.17 в 14:58:39:
Так что не ругайтесь, что дэбил
Sakamsky, Обожаю говнокодить
Можешь попробовать так сделать:
<?
////JS
<script>
function spisok(){var proverka=$("#proverka".val();
if(proverka=='on'){$.ajax({url: "/spisok",cache: false,success: function(html){$("#spisok".html(html);}});}
}
function nav(page){
if(page==1){$("#proverka".val('off');}
else{$("#proverka".val('on');}
$.ajax({type:"GET",url: "/spisok",cache: false,data:{p: page},success:function(html){$("#spisok".html(html);}});
}
spisok();
var sp=setInterval(function(){spisok();},1000); //включаем обновление раз в сек
</script>
////HTML
<input type="hidden" val="on" id="proverka">
?>
Вариантов реализации очень много.
В данном примере я сделал скрытое поле с "value="on"".
В функции "spisok()" проверяем если "value" в этом поле равно "on" то мы выполняем $.ajax...
В функции "nav()" проверяем если "page" равен "1" то мы меняем "value" полю "proverka" на "off" если нет то наоборот..
Если нужно более солидное и красивое решение, сделаю за хорошие бапки))
Смайлы заиплы
Посибо тебе Не совсем то, но нашел решение в твоем примере