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>
AJAX가 _Asynchronous_ JavaScript 및 XML로 확장되고 요청이 동기식이 될 것으로 예상하고 있습니다. "앞으로 나아갈 것"이 아니라, 그것이 어떻게 작동해야하는지입니다. – Xion
질문은 IE가 너무 느려서 작업이 완료되기 전에 느려지는 이유가되어야합니다. – f0x
"async : false"를 포함하면 아무런 차이가없는 것처럼 보입니다. 나는 내 길을 여기에서 느끼고있어, 연골을 씹고있어. 그래서 나는 그걸 좀 더 연주 할거야. 감사. – sdawson