2012-02-28 2 views
0

HTML 요소를 채우는 XML 파일에 대한 간단한 $ .ajax POST 호출이 있습니다. IE 9에서 정상적으로 작동합니다. "오류 :"절이 두 브라우저에서 모두 올바르게 작동합니다. "성공 :"경우, IE 9는 A 지점에서 정중하게 기다립니다. "성공 :"절이 완료됩니다. Eager-beaver FF 10은 별도의 스레드처럼 모든 세계를 검색 할 때 바지선을 사용하고 "design_xml"변수가 실행되기 전에 "doPopulate()"함수를 호출하여 결과적으로 HTML 요소를로드하지 못합니다.

그러나 마지막 줄의 window.alert로 기다리면 제대로 작동합니다. $ .ajax 호출을 따라 잡기 위해 잠시 멈추었습니다. 이제 여기서 경고를 원하지 않으므로 다양한 지연 루프 (타임 아웃, for 루프 등)를 시도했습니다. 그러나 어느 것도 작동하지 않습니다. 아무도 나에게 무슨 일이 일어나는지 말해 줄 수 있니?

URL은 로컬 컴퓨터입니다. Windows Vista.

var design_xml = null; //Global variable to hold design XML 
var template_url = "Docs_and_notes/Design_template_02.xml"; //Template URL (temp loc.) 
var template_urlzz = "Docs_and_notes/zzDesign_template_02.xml"; // Duff template URL for testing 

function getDefaults() { 
    $.ajax({ 
    type: "POST", 
    url: template_url, 
    timeout: 5000, // 5 seconds or go home 
    success: function(xml) { 
console.log("Succeed"); 
     design_xml = xml; xml = null; //Make XML global, kill original 
    }, 
    error: function(request, status, err) { //Catch misfires 
console.log("Fail");   
     window.alert("Error 001: Design template not loaded. Status: " + status + " err:" + err); 
    } 
//Point A:  
    //window.alert("Final line"); 
    }); 

function doPopulate() { 
    getDefaults(); 
    $("#fn").text($('filename', design_xml).text()); 
} 

XML :

<filename default="untitled">gaberlunzie</filename> 

HTML :

<body> 
    <button onclick="doPopulate()"></button> 
    <div> 
     <span id="fn">Filename</span> 
    </div> 
</body> 
+4

AJAX가 _Asynchronous_ JavaScript 및 XML로 확장되고 요청이 동기식이 될 것으로 예상하고 있습니다. "앞으로 나아갈 것"이 아니라, 그것이 어떻게 작동해야하는지입니다. – Xion

+0

질문은 IE가 너무 느려서 작업이 완료되기 전에 느려지는 이유가되어야합니다. – f0x

+0

"async : false"를 포함하면 아무런 차이가없는 것처럼 보입니다. 나는 내 길을 여기에서 느끼고있어, 연골을 씹고있어. 그래서 나는 그걸 좀 더 연주 할거야. 감사. – sdawson

답변

2

당신이 design_xml을 설정 한 후 라인 $("#fn").text($('filename', design_xml).text());에서, success 매개 변수에 있어야합니다.

+0

심지어는 xml을 성공으로 넘기기 만하면 global design_xml을 사용할 필요가 없습니다. 다른 곳에서 사용하지 않는 한 – Dampsquid

+0

bdares, 고맙습니다. 문제가 해결 될 것입니다. 사용자 입력 이벤트가 발생하기 전에 약간의 다운 스트림 코드가 있습니다. 나는 그걸 확인 할 필요가있을 테지만, 그게 나를 괴롭히는 것 같아. 고맙습니다. Dampsquid - 사용자를 위해 문서를 구성하므로 design_xml은 전역이어야합니다. 감사. – sdawson

+0

넵 - 고정. 많은 감사합니다. – sdawson