Как читать потоковые данные в реальном времени с помощью AJAX

#javascript #ajax #html

#javascript #ajax #HTML

Вопрос:

Я хочу прочитать потоковые данные в реальном времени с моего URL (т. Е. http: // ..) Мой URL (т. Е. http: // ..) содержит числовые данные, и они постоянно растут. я хочу прочитать эти данные в свой файл (HTML5 и javascript). Я закончил со статическими числовыми данными, используя AJAX. Но пока это связано с динамическими данными (потоковыми данными в реальном времени). я не могу получить responseText (). Возможно ли принять responseText () этого URL (т. Е. http: // ..), который содержит потоковые данные в реальном времени? как я могу это сделать? Мой код для чтения статических данных

 <!DOCTYPE HTML>
<html>
<head>    

<script type="text/javascript">
  function accessWebservice()
    {           
        var xmlhttp;
        xmlhttp = new XMLHttpRequest();

 //xmlhttp.open("get","http://192.168.15.174/Streamer/StartStream.aspx?IsTestData=true",true);   
 //above URL contains live streaming numberic data that i want to read
 //But when i am using above URL i am not getting responseText (**How to get it?**)
  xmlhttp.open("get","http://localhost/StaticDemoData.txt",true);   //This contains static data
        xmlhttp.onreadystatechange=function() {
         if (xmlhttp.readyState==4)
         {
             if (xmlhttp.status == 200 )
              {
                 var responseData=xmlhttp.responseText;
           alert(responseData);
              }
             else
             {
                 alert("Server returned: "   xmlhttp.status);
             }
         }
        }

        xmlhttp.send(null);
    }
</script>
</head>
  

Как получить ‘xmlhttp.responseText’ для потоковых числовых данных в реальном времени?

Комментарии:

1. Движок Google AJAX Push. Это должно помочь вам начать.

2. @user1037552 Не могли бы вы поделиться с нами некоторыми из сделанных вами попыток кодирования и, возможно, еще несколькими деталями вашего запроса?

3. Также опубликованный вами фрагмент кода является XHTML 1.0 и не имеет ничего общего с HTML5.

4. @Ian Devlin: я изменил <!DOCTYPE html PUBLIC»-//W3C//DTD XHTML 1.0 Strict//RU» » w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd «> в <!DOCTYPE HTML>

5. возможно, заголовки http-ответа?

Ответ №1:

Если вы проверите xmlhttp.readyState == 3 (XMLHttpRequest.ЗАГРУЗКА), затем доступ xmlhttp.responseText предоставит вам данные, которые были получены с вашего сервера на данный момент. Затем вы можете использовать setInterval для постоянной проверки xmlhttp.responseText на наличие новых данных.

Ответ №2:

Попробуйте этот скрипт, чтобы получить потоковые данные … но вам нужно jquery.js файл в вашем каталоге и StaticDemoData.txt вы можете изменить другой файл с расширением .php и получить свой запрос к файлу

 <html>
<head>
<script type="text/javascript" src="jquery-1.5.1.js"></script>

<script type="text/javascript">
$(document).ready(function(){
  userdetails();
});


function userdetails(){
     $.post('StaticDemoData.txt',function(data){
         $('.result').html(data);
       });     

       setTimeout("userdetails()",1000);
}

</script>
</head>
<body>
<div class="result"></div>
</body>
</html>