Как я могу обновить несколько, динамическое количество <div>разделов с помощью AJAX? - PullRequest
0 голосов
/ 14 июня 2011

Как использовать ajax для непрерывного обновления нескольких разделов div?

AJAX

<script type="text/javascript">

    <%
    for(Server i : svr )
    {
    %>  
        function loadXMLDoc()
        {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            //document.getElementById("refresh").innerHTML=xmlhttp.responseText;
              document.getElementById(<%=i.getName()%>).innerHTML=xmlhttp.responseText;
            }
          }


                xmlhttp.open("GET","http://localhost:8080/RefreshStatus/<%=i.getId()%>", true);
        xmlhttp.send();
        }

        <%
        }
        %>

        //setInterval(loadXMLDoc, 5000 );
        setInterval(loadXMLDoc, 500 );
    </script>

ОТДЫХ HTML

</head>
<body>

Status 1 <div id="refresh">whatever is in here gets changed</div>
Status 2 <div id="refresh">whatever is in here gets changed</div>
Status 3 <div id="refresh">whatever is in here gets changed</div>

1 Ответ

1 голос
/ 14 июня 2011

Прежде всего, используйте уникальные идентификаторы для каждого элемента на странице.Вы не можете иметь дубликаты, иначе все начнет ломаться.Заставьте их использовать один и тот же класс CSS, если вы можете:

Status 1 <div class="refresh">whatever is in here gets changed</div>
Status 2 <div class="refresh">whatever is in here gets changed</div>
Status 3 <div class="refresh">whatever is in here gets changed</div>

Если вы можете использовать jQuery, попробуйте следующее:

$('.refresh').html('New status OK!');

Если вы не можете использовать jQuery, тогдавы можете получать элементы по имени класса , проходить по всем из них и устанавливать их свойство innerHTML по одному.

element.innerHTML = 'New status OK!';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...