2011-11-22 2 views
0

내 문서 준비 기능에 ajax 호출이 있습니다. 하지만 ie7에서 10 번 중 약 1 번에서 아약스 함수는 전혀 호출되지 않습니다.ajaxcall이 ie7에 만들어 졌는지 확인하십시오.

ajax 호출이 있었는지 확인하는 방법이 있습니까? 그렇지 않으면 오류 또는 성공 함수가 실행될 때까지 다시 실행하십시오. 문제는 ietester -> ie7 모드에서 페이지를 실행할 때만 발생합니다. 감사합니다

코드 : http://jsfiddle.net/jxEj5/

+1

을 통해 타이머를 클리어와 아약스는 실행해야합니다 - 당신은 몇 가지 다른 문제가 있습니다. 코드를 업로드하십시오. –

+1

코드를 게시하면 도움이 될 것입니다. :) –

+0

@RoyiNamir 코드 업로드 – Johan

답변

1

변수를 모니터로 설정하고 ajax 호출이 완료 될 때까지 5 초마다 ajax 호출을 실행하는 타이머를 설정할 수 있습니다. 모니터는 var gotAjax = false으로 설정되고 Ajax가 성공하면 true로 설정됩니다. gotAjax = true.

$ ajax를 직접 호출하는 대신 시간 시계를 setTimeout(ajaxCall, 5000)으로 설정합니다. ajaxCall가 설정되어있는 경우 타이머에서, 당신은 clearTimeout(ajaxCall)

$(function() { 
    var gotAjax = false; 

    var ajaxCall = function() { 
     if (!gotAjax) { 
     $.ajax({ 
      url: '../SentinelOperationsUI/GenericHandler.ashx', 
      dataType: 'json', 
      data: { 
       'FunctionName': 'GetActivity', 
       'SearchType': 'Single', 
       'postedData': JSON.stringify($('#content').data('postedData')) 
      }, 
      success: function(data) { 
       gotAjax = true; 
       $('#content').data('activityKey', data.SENTINEL_OPERATION_ACTIVITY_KEY); 

       $.ajax({ 
        url: '../SentinelOperationsUI/ajax/activityviews/' + data.ACTIVITY_VIEW, 
        dataType: 'html', 
        success: function(data) { 

         $('#content').hide().html(data).fadeIn(200); 
         $('#parenttabs, #tabs, #tabs2, #parenttab-1, #parenttab-2').tabs(); 
        } 
       }); 


      } 
     }); 
     } 
     else { 
     clearTimeout(ajaxCall); 
     } 
    }; 

    setTimeout(ajaxCall, 5000); 

}); 
+0

setinterval을 사용하여 비슷한 해결책을 만들었지 만 감사한다. – Johan

0

이 당신이 jQuery를 사용하지 않는 경우가

, 내가 코드 :

을 참조해야합니다 디버깅 도움이 jQuery를의 예입니다 error 함수는 404 또는 이와 유사한 오류가 발생했을 때 발생하며, Ajax DID가 발생했지만 예기치 않은 응답이 반환되고 자바 스크립트가 도청 된 경우 try .. catch은 오류를 더 쉽게 감지하는 데 도움이됩니다.

$.ajax({ 
    url: "file.php", 
    type : "POST", 
    contentType : "application/x-www-form-urlencoded", 
    success: function(response){ 
     try{ 
      // Success code 
     }catch(e){ 
      // Possibly you have an error in your JS, this should alert it to you 
      alert(e.message); 
     } 
    }, 
    error : function(jqXHR, textStatus, errorThrown){ 
     // Error occured, lets see what's wrong 
     alert("error " + textStatus + ": " + errorThrown); 
    } 
}); 
+0

나는 결코 성공이나 오류를 얻지 못한다. 아약스 전화는 전혀 만들어지지 않습니다. – Johan

+0

이 코드는 페이지로드 또는 버튼 클릭 중 하나에서 실행 중입니까? –

+0

"내 문서 준비 기능에서 AJAX 호출이 있습니다." – Johan

관련 문제