@zhuravlev125

Как динамически изменять страницу?

подскажите как можно динамически изменять содержимое страницы без перезагрузки. На сколько я понимаю нужно использовать ajax и Длиные Опросы. Но нет понимания как правильно это организовать. Задача следующая, есть таблица и если статус задачи false то строка отображается если true - не отображается. Статус изменяется нажатием на checkbox, с помощью ajax. Можно конечно в конце запроса делать location.reload(); но очень хотелось бы избавится от этого.
Имеется след. роутинг:
app.get('/TODOList', isLoggedIn, require('./TODOList').list);
exports.list = function (req, res, next) {
    task.find({$or :[{'head.userID': req.user._id},
        {'access_users': req.user.local.email}
        ]},
        function (err,projects) {
      if(err) return next(err);
        res.render('TODOList',{title: 'TODO List',
            userID :req.user.local.username,
            projects: projects || []
        });
      });
};

setInterval(function(){
    $.ajax({
    type: 'GET',
    url: '/TODOList',
    success: function (res) {
        console.log('success full');
    },
    error: function () {
    }})
    }, 5000);

текущий код хоть и делает ajax запрос но все равно перезагружает страницу(по коду так должно быть но не работает). Как отображать в реальном времени изменения без перезагрузки? в шаблонизаторе jade использую условие для вывода ( if(tasks.status == false)) -- вывод
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
abyrkov
@abyrkov
JavaScripter
1. Не вижу в вашем коде перезагрузки.
2. В ответ на AJAX возвращается HTML, а jQuery его любезно оборачивает.
3. Вам нужно, что бы сервер оповещал клиента, что данные изменились(с помощью ServersSentEvents(или другого средства LongPoling'а) или WebSocket)
4. Напишите API. Так будет проще.
P.S. Каков вопрос - таков ответ
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы