Форум сайта python.su
На стороне сервера запускаю периодически скрипт способом
<meta http-equiv="refresh" content="0; url=http://site.com/muscript">
Офлайн
ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.
Офлайн
FishHookПонимаю! Просто вопрос не в правильном обмене информацией и очереди задач а в простоте периодического запуска скрипта на сервере когда открыто окно браузера.
ИМХО, от подобной практики надо отказываться. Если есть нужда рефрешить, подумайте, а не лучше ли прикрутить веб-сокет.
Офлайн
Можно делать get запросы по таймауту, что-то типа этого:
function foo(){ setTimeout(foo, 5000); $.get('http://site.com/muscript') };foo();
Офлайн
Всем спасибо! Соорудил вот такое:
<!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>
Офлайн