Всем добра! Натолкните пожалуйста на мысль... Как выполнять Ajax по времени? setTimeout и прочее не подходит. Т.е. отсчет должен быть не от того когда пользователь на сайте, а допустим каждый час на сайте показывать информацию, посланную Ajax'ом или Cron'ом. Показали - убрали... показали - убрали... и т.д. Спасибо!
Думаю тоже нет. Т.к. это все клиентское. Нужно именно серверное решение. Т.е. есть кто на сайте или нет, все равно вывести блок и показать.
Не тупите. AJAX – это клиент-серверная технология, в которой инициатором выступает клиент. --- Добавлено --- Естественно, это предназначалось ТСу.
Если нужно точно в начале часа просто первый раз считаешь сколько времени осталось до события (можно в пыхе) ставишь timeout делаешь событие плюс в нем же запускаешь интервал.
@webog Так тебе просто крон нужен? Мухи отдельно котлеты отдельно. Можно системный использовать. Можно на ноде написать. Сними он бесплатный сервер в гугла и дергай хостинг когда нужно.
@webog бесплатного сервера? или чего? https://cloud.google.com/free/ только смотри какой бесплатный us 0.6gb 30gb навсегда плюс 300 долларов в подарок на первый год для тестов. Нужно только карту ввести с долларом на счету. --- Добавлено --- Когда выдают хостинг там в панели инструментов всегда есть крон
@nospiou Спасибо! Я имел ввиду пример кода. --- Добавлено --- Хостинг есть, у меня VPS. Нода там есть.
Я бы системный не использовал. Приложения нужно изолировать. А вот нода это да. https://github.com/kelektiv/node-cron Плюс менеджер для мониторинга перезагрузки в случаи чего и т.д https://github.com/Unitech/pm2 --- Добавлено --- Ну и если нужно системный скрипт выполнить https://nodejs.org/api/child_process.html
Как выполнять Ajax по времени? setTimeout и прочее не подходит. Почему это не подходит? вполне себе выполняет поставленную задачу.. Тебе бублики или пирожки?
setIterval проверяешь сколько сейчас времени и делаешь свои черные делишки, если минуты 00. --- Добавлено --- можно сервак дергать, но я бы не стал. Думаю, клиентского времени достаточно.
Допустим показываем с интервалом от 1 до 2-х часов. Пользователь зашел на 30 мин и вышел, счетчик не дошел до часа. второй зашел на 50 минут и вышел и т.д. Т.е. клиентская часть не катит... В общем пришлось юзать сокет, НО сокет не на всех хостингах есть... Вот думаю что делать!?.
@lastdays, очевидно, ТС'у надо не "показывать клиенту каждый час" определённую информацию, а каждый час определяться с информацией, которая будет показана клиентам, если те зайдут на сайт в этот самый интервал (час) --- Добавлено --- Крон и его инкарнации, как рекомендовал @nospiou.
Если эта инфа индивидуальная для каждого пользователя, то кроме сокетов только longg/short polling. А ты что, универсальный продукт разрабатываешь, который будет скачиваться юзверями и ставиться у себя? Почему тебе не по барабану, есть ли сокеты на шаредах?
@webog, а ещё можно просто один раз сформировать "таблицу" с интервалами и информацией о контенте и просто с ней сверяться при решении, что отдавать в "том блоке". Будь то при первом заходе на сайт или по истечении таймаута.