저같은 경우 ajax 사용하여 json 파일이나, xml을 로드하는데,
하나 파일의 경우 크게 문제가 없는데, 파일을 한 번에 여러개 로드해야할 경우
모든 파일이 다 로드된 후 실행하려고 하는데,
그걸 할 줄 몰라 이렇게 무식하게 하고 있습니다..-_-;;
$.ajax({
type:"GET",
url:"1.xml",
dataType:"xml",
success:function(data)
{
$.ajax(
{
type:"GET",
url: "2.xml",
dataType:"xml",
success:function(data)
{
$.ajax(
{
type:"GET",
url: "3.xml",
dataType:"xml",
success:function(data)
{
}
});
}
});
}
});
이런식으로 무식하게 합니다..-_-;;
이걸 개선할 수 있는 방법(?)이 있을까요?
댓글 3
1. 불러올 파일 목록을 배열로 만들어 넣어 둡니다. var xmlFiles = ['1.xml', '2.xml', '3.xml'];
2. 함수를 하나 만드는데, 반드시 var myFunction; myFunction = function() { ... }; 이렇게 선언합니다. 나중에 자신을 참조해야 하기 때문에 변수부터 미리 선언해 두어야 해요.
3. 이 함수에서는 제일 먼저 위에서 만든 배열(xmlFiles)을 체크합니다. 배열이 비었으면 그대로 return합니다. 비지 않았으면 xmlFiles.shift() 메소드로 맨 앞의 것을 떼어내어 4단계로 넘어갑니다.
4. 그 파일명을 $.ajax로 호출하면서 success에 myFunction을 넣습니다. 일종의 재귀함수가 되는 거죠. 한 번 호출할 때마다 배열의 길이가 하나씩 줄어들다가 마침내 배열이 비게 되면 실행이 종료됩니다.