Найти - Пользователи
Полная версия: вопрос по javascript
Начало » Web » вопрос по javascript
1
agryn
На стороне сервера запускаю периодически скрипт способом
<meta http-equiv="refresh" content="0; url=http://site.com/muscript">
Но когда http://site.com/muscript таймаут или ошибка то автоматическая перезагрузка останавливаеться.
Как вариант думаю перезагружаемую страницу поместить в iframe но только не знаю как с помощью js отреагировать на таймаут в iframe и перезагрузить его.
FishHook
ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.
agryn
FishHook
ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.
Понимаю! Просто вопрос не в правильном обмене информацией и очереди задач а в простоте периодического запуска скрипта на сервере когда открыто окно браузера.
o7412369815963
Можно делать get запросы по таймауту, что-то типа этого:
function foo(){
  setTimeout(foo, 5000);
  $.get('http://site.com/muscript')
};foo();
agryn
Всем спасибо! Соорудил вот такое:
<!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>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB