2013-03-25 1 views
0

여러 개의 XmlHttpRequest 호출이있는 페이지가 있는데 어떤 div에 어떤 ​​연결을 출력하고 싶은지 알고 있습니다.Javascript - 여러 XmlHttpRequests 및 대상 div와 연결

함수의 코드를 어떻게 든 divname을 전달하여 출력을 작성하고 싶습니다.

지금 당장 필자는 6 번 이상 기능을 그대로 복제하고 있습니다!

+1

예, 어휘 범위/클로저 개념으로 쉽게 완료 할 수 있습니다. 보다 빠르고 객관적인 리팩토링에 대한 2 가지 요청 코드를 보여 주면 좋을 것입니다. –

+0

키가 쿼리 선택기 (예 : #myDiv)의 JSON 객체 서버 측을 만들 수 있으며 값이 내용입니다. { "#myDiv": "텍스트 ...", ". myClass": "다른 텍스트 ..."}. 클라이언트 측 Json.parse에서 responseText와 in for for를 살펴보십시오. –

답변

3

물론 가능합니다.

6 개의 다른 div와 똑같은 것을하려고하지만 6 개의 다른 호출로 6 개의 다른 응답을 사용하려는 경우 div를 사용하는 함수를 만들고 그 함수를 6 번 사용하십시오.

var doSomethingAJAX = function (el, url) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", url, true); 
    xhr.onload = function() { el.appendChild(document.createTextNode(xhr.responseText)); }; 
    xhr.onerror = function() { /* ... */ }; 
    xhr.send(); 
}; 

doSomethingAJAX(document.getElementById("div1"), "http://example.com/json1.json"); 
doSomethingAJAX(document.getElementById("div2"), "http://example.com/json2.json"); 

좀 더 일반적인 방법이 있지만,을 풀기 위해 AJAX 프레임 워크를 만들지는 않을 것입니다.

요점은, 어떤 작업을 반복하든, 그것을 하나의 함수 (또는 두 개의 함수 또는 세 개의 함수)로 바꾸는 방법을 찾아 그 함수를 호출하여 변경되는 부분 만 전달하는 것입니다.

이 방법을 사용하지 않는 경우 질문을 예제로 업데이트하면 해결할 수 있습니다.