작성중인 웹 사이트에 여러 페이지에 사용되는 정보가 있습니다. 내가 설정 한 방법은 정보가 XML 파일에 저장된다는 것입니다. 그런 다음 AJAX를 사용하여 XML 파일을로드하고 성공하면 구문 분석 메서드를 호출하여 th를 추가합니다.div에 XML을로드 할 때 AJAX 경쟁 조건
경쟁 조건이 발생하는 것으로 보입니다. XML 파일의 구문 분석이 완료되기 전에 페이지로드가 완료됩니다. 파싱 메서드에서 경고를 추가하면 잘 작동합니다 (이것이 내가 경쟁 조건이라고 생각하는 이유입니다).
function loadXML(link) {
$('#div1').load(link);
loadImage(link);
if (link == "news.html") {
$.ajax({
type: "GET",
url: "news.xml",
dataType: "xml",
success: newsParser
});
}
}
온라인으로 검색했을 때 세마포어 또는 제한 시간을 사용했을 가능성이 있습니다. 이들 중 어느 것도 나에게 잘 맞지 않는 것처럼 보였다.
xml 앞에 html 페이지가로드되지 않으면 정보를 추가 할 div가 없습니다. 페이지로 이동하여 특정 페이지로 갈 때마다 구문 분석되지 않도록 데이터를 저장할 때 다른 xml 파일을로드하려고 시도했지만 그 내용을 제대로 파악하지 못했습니다.
제공되는 도움말에 감사드립니다.
봐. 성공 함수를 실행하기 전에 두 호출이 모두 완료되었는지 확인합니다. http://api.jquery.com/deferred.then/ –
페이지가로드 된 후 업데이트되는 일종의 라이브 피드를 만드는 경우가 아니면 서버의 데이터를 통합하는 것이 더 나을 것입니다. 따라서 AJAX와 이벤트 중심 프로그래밍의 모든 복잡성을 피할 수 있습니다. 또한 HTML 출력을 캐시 가능하게 만들어 계산을 저장합니다. –
달성하려는 목표는 무엇입니까? 당신이 기대하고있는 순서와 예상되는 순서는 무엇입니까? –