Как я зацикливаю запрос ajax (используя jquery) и jsp - PullRequest
0 голосов
/ 24 июня 2011
<script>

//when page is ready do the following
$(document).ready(function()
{
    //set interval of refresh
    setInterval(doAjaxMethod, 1000);

});

function doAjaxMethod(id)
{ 
     $.ajax({
        url: "getStatus/"+id,
        dataType: "json",
        success: function(json)
        {
            $('#ajaxStatus').html(json.status);
        }    
});
</script>

<%
   //How can I do something like this

    int n = object.size();

    for(int i=0; i<n; i++)
    {
         doAjaxMethod(object.getId());
    } 
%>

<div id=ajaxStatus> status updates here </div>

Ответы [ 3 ]

3 голосов
/ 24 июня 2011

Я бы не стал смешивать вызов javascript из скриптов. Вместо этого управляйте циклом в JavaScript. Если вы опишите больше того, что вы пытаетесь сделать, я могу быть более конкретным. Кажется, у вас есть контейнерный объект, доступный на jsp, и вам нужно пройти через, чтобы получить статусы того, что находится в контейнере. Вместо передачи этого объекта в jsp, почему бы вам не создать конечную точку, которую javascript на jsp может вызывать в ajax, чтобы получить ВСЕ данные, которые вам нужны.

2 голосов
/ 24 июня 2011

Один из подходов, который вы можете сделать, это добавить их в список, подобный объекту с классом css, и вызвать на нем метод ajax onLoad.Вот несколько непроверенных (и, вероятно, не скомпилированных)

<%
   //How can I do something like this

    int n = object.size();

    for(int i=0; i<n; i++)
    {
         out.println("<li class='abcd' id ='<%=object.getId()%>'>" +object.getId() +"</li>");
    } 
%>

, а затем в javascript при загрузке страницы

$(function(){
    $('.abc').each(i, v){
                doAjaxMethod($(v).attr('id'));
    }
});
0 голосов
/ 24 июня 2011

Попробуйте это (при условии, что objArray - это массив):

$.each(objArray, function(i, obj) {
       doAjaxMethod(obj.getId());
});

Он будет повторять ваш массив, а obj - каждый из элементов.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...