Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2014, 21:53
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

SetInterval в MVC! Важно!
Всем доброго времени суток! Ребята, знающие и только начавшие изучать яваскрипт и внедрение его в структуру MVC. Подскажите пожалуйста кто знает. Я не так давно (где-то месяцев 8) стал проектировать сайты на MVC. я не говорю о фреймворках. Просто использую эту структуру но на голом php. Пишу один проект, и ни как не могу допереть до безобразия банальную вещь. Скажите пожалуйста, у меня в базе есть таблица session в неё помещяются только что авторизовавшиеся юзеры (становяться online), ситуация следующая:

В папке view у меня есть файлик index.php -> в нем есть обычный div в котором выводиться цикл всех юзеров которые сейчас online! Как мне правильно обновлять этот div каждые 5 секунд например? Знаю что надо использовать SetInterval или Timeout, а не пойму как правильно!!! В контроллере нужно что-то прописать? В коде я пишу
<script type="text/javascript">

setInterval(function(){
$('#ubdate').load('Тут должен быть контроллер или файл модели???');},
5000);

</script>

Какая самая правильная реализация данной функции в MVC???
Всем спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2014, 11:30
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

espltd,
Вы что-то делаете не так.
Почитайте про Backbone, Angular, думаю поможет.
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2014, 11:31
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

заголовок зашкаливает информативностью...

начнем с того, ч то МВЦ для ПХП -- это что-то одно (сервер), а джаваскрипт вообще и сетТаймаут в частности -- это что-то другое (клиент), и бездумно их смешивать не нужно.

ну и где-то так:
setInterval(function(){
$.post('путь/к/методу/контроллера/отдающего/кол-во/онлайн',function(data){
   // запихиваем куда-нибудь data
});
}, 5000);
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2014, 12:49
Профессор
Отправить личное сообщение для espltd Посмотреть профиль Найти все сообщения от espltd
 
Регистрация: 10.10.2012
Сообщений: 201

у меня к контроллеру просто подключен requare_once файл модели, которая в итоге возвращает массив людей online, в контроллере я просто написал так

// Получение массива юзеров online
$logins = all_sessions();

И потом я использую эту переменную $logins в виде с циклом foreach.
Я читал на форумах, что нужно дублировать цикл, в файле, который будет обновлять инфу, но у меня почему-то по истечении 5 секунд, тупо пропадают пользователи online, а хотя должны обновиться. В общем ерунда какая-то получается. Были пользователи, потом скрипт должен обновить и показать, появились ли новые, а у меня тупо исчезают старые и див получается пустой. А если я в файле, в котором продублирован цикл, делаю обычный текст - любой, хоть ПРИВЕТ!!! то тогда через 5 секунд, этот текст появляется в dive. Какая - то странная хрень получается. Если дублирую цикл - не работает, а если обычный текст, то обновляется!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
setInterval и глобальные переменные Почемучкин Events/DOM/Window 11 11.08.2012 14:44
Переменный в setinterval не видно вне него zeraid Общие вопросы Javascript 12 13.04.2011 10:29
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38