Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 29, 2013 13:18:58

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по javascript

На стороне сервера запускаю периодически скрипт способом

<meta http-equiv="refresh" content="0; url=http://site.com/muscript">
Но когда http://site.com/muscript таймаут или ошибка то автоматическая перезагрузка останавливаеться.
Как вариант думаю перезагружаемую страницу поместить в iframe но только не знаю как с помощью js отреагировать на таймаут в iframe и перезагрузить его.

Офлайн

#2 Сен. 29, 2013 13:39:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

вопрос по javascript

ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.



Офлайн

#3 Сен. 29, 2013 15:00:53

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по javascript

FishHook
ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.
Понимаю! Просто вопрос не в правильном обмене информацией и очереди задач а в простоте периодического запуска скрипта на сервере когда открыто окно браузера.

Офлайн

#4 Сен. 30, 2013 09:33:55

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

вопрос по javascript

Можно делать get запросы по таймауту, что-то типа этого:

function foo(){
  setTimeout(foo, 5000);
  $.get('http://site.com/muscript')
};foo();

Офлайн

#5 Сен. 30, 2013 20:31:17

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по javascript

Всем спасибо! Соорудил вот такое:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
function get_rend_status() {
    var req = getXmlHttp();
    var statusElem = document.getElementById('rend_status');
    req.onreadystatechange = function() {
        // onreadystatechange активируется при получении ответа сервера
        if (req.readyState == 4) {
            if(req.status == 200) {
                statusElem.innerHTML = req.responseText
            }
            // тут можно добавить else с обработкой ошибок запроса
        }
        setTimeout("get_rend_status()", 1000);
    };
    req.open('GET',url_rend_status, true);
    req.send(null);
    return req.responseText
}
    </script>
</head>
<body onload="url_rend_status='/pdf/test_ajax'; get_rend_status()">
<div id="rend_status">Статус підготовки до друку</div>
</body>
</html>

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version