복붙노트

[SPRING] DIV 내용을 5 초마다 자동 새로 고침 코드가 작동하지 않음

SPRING

DIV 내용을 5 초마다 자동 새로 고침 코드가 작동하지 않음

봄 MVC를 사용하여 메신저 내 editStatus.jsp에서 나는 5 개의 seocnds마다 DIV를 리프레시하는 다음의 코드를 가지고있다.

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();
});

그러나 알림 경고 ( 'Inside 2'); 및 경고 ( 'Inside SettimeOut'); 절대 부르지 마라. 제안 해주세요.

해결법

  1. ==============================

    1.귀하의 새로 고침 기능이 불완전하다고 생각합니다. 예를 들어, 루프를 만드는 것은 없습니다. 다음과 같이 시도해보십시오.

    귀하의 새로 고침 기능이 불완전하다고 생각합니다. 예를 들어, 루프를 만드는 것은 없습니다. 다음과 같이 시도해보십시오.

    $(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();
    });
    
  2. from https://stackoverflow.com/questions/18503478/auto-refresh-div-contents-every-5-seconds-code-not-working by cc-by-sa and MIT license