2013-05-30 1 views
1

원본 파일을 찾을 수없는 경우 대체 URL을 제공 할 수 있는지 궁금합니다. 구체적으로 :원본을 찾을 수없는 경우 ajax get, alternate url

파일에 대한 링크가 동적으로 생성되며, 마지막 네 문자는 현재 연도입니다. 내년 목표를위한 파일이 항상있는 것은 아니기 때문에 전년도와 함께 백업 URL을 제공하는 것이 목표입니다. 여기

내가 함께 일하고 있어요 현재 코드의 예입니다
var newXML = function(url) { 
    var newDoc = null; 
    $.ajax({ 
     type: "GET", 
     url: url, 
     dataType: "xml", 
     async: false, 
     success: function(xml) { 
      newDoc = $(xml); 
     }, 
     error: function(jqXHR, text, errorMsg) { 
      alert("The following error occurred: "+ errorMsg); 
     } 
    }); 
    return newDoc; 
} 

난 그냥 newXML는 그것을 현재 연도로 끝나는 URL을 전달 호출 한 문서 검색해야 할 때마다

. 그 파일이 존재하지 않는 백업은 어떻게 제공합니까?

+3

ajax 호출이 실패하면 다른 URL을 사용하여 함수를 다시 호출하십시오.이 경우'done()'및'fail()'을 사용해야하며 비동기 호출과 함께 작동하도록 논리를 작성해야합니다. – adeneo

+0

@adeneo 동의합니다. 변수를 URL로 설정하고 오류가 발생하는 경우 필요한 경우 새 URL을 setTimeout으로 설정하여 이전 URL을 다시 시도 할 수도 있습니다. 재미있는 질문. –

+0

'fail()'을 사용하여 함수를 재귀 함수로 변경해야한다고 생각합니다. –

답변

0

이것은 빠르고 지저분한 수정입니다. 내 기본 파일을 찾는 첫 시도 후이 코드를 추가했습니다.

setTimeout(function(){ 
if($('#latest').is(':empty')){ "Added code here requesting an alternate file if div is empty" }}, 1000); 

나는 위의 설명에 설명 된 적절한 접근법에 익숙해지기 전까지 만 이것을 사용하고 있습니다. 특히 jQuery.get().

마감 시간이 지났고 다른 화재가 발생하지 않는 한이 접근법을 사용하는 것이 좋습니다. 일단 그 불이 꺼지면 올바르게 수리하는 방법을 이해하는 데 몇 시간이 걸릴 것입니다. 즉, 잘 작동하고있다.

관련 문제