2013-08-29 2 views
3

Im использованием Spring MVC In My editStatus.jsp я следующий код для обновления Div каждые 5 seocndsAuto Refresh DIV содержимое каждые 5 секунд код не работает

function refreshDiv(){ 
    $.ajax({ 
     url: 'editStatus.jsp' 
    }).done(function(result) { 
     $('#refreshDIV').text(result); 
    }); 
} 

, и мой код DIV является

<div class="span5"> 
     <div class="row-fluid form-inline"> 
      <h4 class="inline"> 
       <spring:message code='alert.status' />&nbsp; 
      </h4> 
     </div> 
     <div class="row-fluid"> 
      <div class="span5 row-fluid"> 
       <div class="span9"> 
        <div class="row-fluid"> 
         <div class="span12"> 
          <label> 
           <spring:message code='alert.sent' />: 
          </label> 
         </div> 
        </div> 
        <div class="row-fluid"> 
         <div class="span12"> 
          <label> 
           <spring:message code='alert.in.progress' />: 
          </label> 
         </div> 
        </div> 
       </div> 
      </div> 
      <!-- this has to be calculated, loop through 3 times seems excessive --> 
      <c:forEach var="channel" items="${StatusForm.channels}"> 
       <c:set var="currentChannel" value=""></c:set> 
       <c:set var="channelIcon" value=""></c:set> 
       <c:if test="${channel == 'Email'}" > 
        <c:set var="currentChannel" value="EMAIL"></c:set> 
        <spring:url value="/static/img/icon_email_channel.png" var="channelIcon" /> 
       </c:if> 
       <c:if test="${channel == 'SmsChannel'}" > 
        <c:set var="currentChannel" value="SMS"></c:set> 
        <spring:url value="/static/img/icon_sms_channel.png" var="channelIcon" /> 
       </c:if> 
       <c:if test="${channel == 'VoiceChannel'}" > 
        <c:set var="currentChannel" value="VOICE"></c:set> 
        <spring:url value="/static/img/icon_voice_channel.png" var="channelIcon" /> 
       </c:if> 
       <div id="refreshDiv" class="span3" > 
        <c:set var="map" value="${StatusForm.channelStateForRecipients[currentChannel]}"></c:set> 
        <div> 
         <label style="color:black" ><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalSentRecipient)} 
         </label> 
        </div> 
        <div> 
         <label style="color:black"><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalNotSentRecipient)} 
         </label> 
        </div> 
        <div> 
         <label style="color:black"><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalInProgressRecipient)} 
         </label> 
        </div> 
       </div> 
      </c:forEach> 
     </div> 
    </div> 

Из выше коды я хочу автоматическое обновление следующего однако же не работает

<div id="refreshDiv" class="span3" > 
        <c:set var="map" value="${StatusForm.channelStateForRecipients[currentChannel]}"></c:set> 
        <div> 
         <label style="color:black" ><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalSentRecipient)} 
         </label> 
        </div> 
        <div> 
         <label style="color:black"><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalNotSentRecipient)} 
         </label> 
        </div> 
        <div> 
         <label style="color:black"><img src="${channelIcon}">&nbsp; 
           ${fn:length(StatusForm.totalInProgressRecipient)} 
         </label> 
        </div> 
</div> 

Если обновляющий код URL проходит через контроллер?

Я попытался с

$(document).ready(function() { 
    alert('Hi OutBound'); 
    var seconds = 5000; // time in milliseconds 
    var reload = function() { 
     alert('Inside Reload'); 
     $.ajax({ 
      url: 'editStatus.jsp', 
      cache: false, 
      success: function(data) { 
       alert('Inside 2'); 
       $('#refreshDIV').html(data); 
       setTimeout(function() { 
        alert('Inside SettimeOut'); 
       reload(); 
       }, seconds); 
      } 
     }); 
    }; 
    reload(); 
}); 

Однако Оповещения оповещения ('Внутри 2'); и alert ('Inside SettimeOut'); никогда не вызываются. Пожалуйста, предложите

+0

, который призывая 'refreshDiv' метод –

ответ

4

Я думаю, что ваша функция обновления не завершена, например, нет ничего, что заставило бы ее зацикливаться. Попробуйте что-то вроде этого:

$(document).ready(function() { 
    var seconds = 5000; // time in milliseconds 
    var reload = function() { 
     $.ajax({ 
      url: 'editStatus.jsp', 
      cache: false, 
      success: function(data) { 
       $('#refreshDIV').html(data); 
       setTimeout(function() { 
       reload(); 
       }, seconds); 
      } 
     }); 
    }; 
    reload(); 
}); 
+0

Спасибо, однако оно не идут в успех: функция (данные) – ronan

Смежные вопросы