Автоматическое обновление списка сообщений в Тикет
у нас на сайте docforyou.ru организованна переписка между врачами и пациентами через комментарии тикетов. У врачей на странице
[[!TicketComments?
&thread=`user-[[!+modx.user.id]]-user-[[+doctor_id]]`
&depth=`2`
&ajaxMode=`button`
&tplCommentForm=`LK2.tpl.Tickets.comment.form`
&tplComments=`MY.tpl.Tickets.comment.wrapper`
&tplCommentAuth=`MY.tpl.Tickets.comment.one.auth`
&tplCommentEmailSubscription=`LK2.tpl.Tickets.comment.email.subscription`
]]
у пациентов на другой странице
[[!TicketComments?
&thread=`user-[[+user_id]]-user-[[!+modx.user.id]]`
&depth=`2`
&ajaxMode=`button`
&tplCommentForm=`LK2.tpl.Tickets.comment.form`
&tplComments=`MY.tpl.Tickets.comment.wrapper`
&tplCommentAuth=`MY.tpl.Tickets.comment.one.auth`
&tplCommentEmailSubscription=`LK2.tpl.Tickets.comment.email.subscription`
]]
нам нужно чтобы сообщения автоматически обновлялись раз в 3 секунды. Делаем клик по tpanel-refresh раз в 3 секунды.
setInterval(function() {
$("#tpanel-refresh").trigger(«click»);
}, 3000);
Проблема в том что это не всегда срабатывает. При первой загрузке страниц врача и пациента как правило не работает. Если например пациент пишет сообщение оно не появляется у врача автоматически. Если страницу врача перегрузить и пациент снова напишет, то это сообщение появляется автоматически у врача через 3 секунды.
Я покопался в коде. Получается что функция getNewComments($name) возвращает пустой массив комментариев даже если есть новые комментарии. Не понятно почему так получается.
Нам нужно чтобы комментарии автоматически обновлялись всегда а не через раз.
Подскажите пожалуйста, как это сделать?
[[!TicketComments?
&thread=`user-[[!+modx.user.id]]-user-[[+doctor_id]]`
&depth=`2`
&ajaxMode=`button`
&tplCommentForm=`LK2.tpl.Tickets.comment.form`
&tplComments=`MY.tpl.Tickets.comment.wrapper`
&tplCommentAuth=`MY.tpl.Tickets.comment.one.auth`
&tplCommentEmailSubscription=`LK2.tpl.Tickets.comment.email.subscription`
]]
у пациентов на другой странице
[[!TicketComments?
&thread=`user-[[+user_id]]-user-[[!+modx.user.id]]`
&depth=`2`
&ajaxMode=`button`
&tplCommentForm=`LK2.tpl.Tickets.comment.form`
&tplComments=`MY.tpl.Tickets.comment.wrapper`
&tplCommentAuth=`MY.tpl.Tickets.comment.one.auth`
&tplCommentEmailSubscription=`LK2.tpl.Tickets.comment.email.subscription`
]]
нам нужно чтобы сообщения автоматически обновлялись раз в 3 секунды. Делаем клик по tpanel-refresh раз в 3 секунды.
setInterval(function() {
$("#tpanel-refresh").trigger(«click»);
}, 3000);
Проблема в том что это не всегда срабатывает. При первой загрузке страниц врача и пациента как правило не работает. Если например пациент пишет сообщение оно не появляется у врача автоматически. Если страницу врача перегрузить и пациент снова напишет, то это сообщение появляется автоматически у врача через 3 секунды.
Я покопался в коде. Получается что функция getNewComments($name) возвращает пустой массив комментариев даже если есть новые комментарии. Не понятно почему так получается.
Нам нужно чтобы комментарии автоматически обновлялись всегда а не через раз.
Подскажите пожалуйста, как это сделать?
Комментарии: 2
может кеш виноват?
Кеш не при чем. Вроде выяснили в чем дело.
разобрался в чем косяк. при новой загрузке страницы мои врачи (или мои пациенты) тикеты меняют номер страницы к которой привязана ветка комментариев. Тогда на другой странице мои пациенты (или соответственно мои врачи) скрипт запрашивает дату последнего просмотра комментариев по номеру страницы, не находит эту дату, выбрасывает с ошибкой и соответственно не обновляет комментарииСделал копию TicketComments и в ней прописал чтобы все ветки комментариев были привязаны к одной выбраной странице. Вроде пока работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.