{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Sakamsky * 11.59
[автор] (4 мар 2017, 14:57) [0/0] [0] [отв] [спам] [под] +1 | -1

Всем привет. Такая трабла возникла.
Есть список чего либо, который обновляется раз в сек.
Нужно, что бы когда пользователь переходит на другую стр, допусти вторую, обновление отключалось, но когда вновь переходит на 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:
Так что не ругайтесь, что дэбил

2.
RUKANO * 2.89
(4 мар 2017, 15:39) [0/0] [0] [отв] [спам] [под] +1 | -1

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" если нет то наоборот..


Если нужно более солидное и красивое решение, сделаю за хорошие бапки))

Смайлы заиплы*

3.
Sakamsky * 11.59
[автор] (4 мар 2017, 16:01) [0/0] [0] [отв] [спам] [под] +1 | -1

Посибо тебе * Не совсем то, но нашел решение в твоем примере *

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений