2011-03-16 2 views
2

자바 스크립트 코드 :IE8, Firefox3.6과 크롬에 대한 간단한 아약스 질문

var httprequest = new XMLHttpRequest(); 
var time = new Date(); 
if (httprequest) { 
    httprequest.onreadystatechange = function() { 
    if (httprequest.readyState == 4) { 
     alert("OK"); 
    } 
    }; 
    httprequest.open("GET", "http://www.google.com", false); 
    httprequest.send(null); 
} 
alert(new Date() - time); 

IE8 : OK, 시간 대화 상자가 Chrome10 프롬프트 될 것입니다 : 확인 대화 상자가 묻는 메시지가 있지만, 시간 대화 상자가 프롬프트 Firefox3하지 말라 .6 : OK, 시간 대화 상자가 표시되지 않습니다.

일부 대화 상자가 표시되지 않는 이유는 무엇입니까?

답변

1

귀하의 경우에는 httprequest.send (null)이 전혀 반환되지 않습니다. js 코드 실행을 차단하므로 해당 라인 이후의 모든 항목은 실행되지 않습니다. 특정 브라우저 또는 다른 것에 대한 구현의 세부 사항.

당신이 여기에서하고 싶은 비동기 적으로 실행하는 것입니다 변화를 호출 할 때 "false"를 "true"로 "열기"방법 : 관련 메모에

httprequest.open("GET", "http://www.google.com", true); 

- 당신이 재생을 시작하는 경우 아약스는 jQuery과 같은 몇 가지 자바 스크립트 프레임 워크를 사용해보십시오. 그들은 DOM, 이벤트, 아약스 등을 다루기위한 브라우저 중립적 인 방법을 제공하는 js 개발자로서 더 쉽게 작업 할 수 있습니다.

+0

감사합니다! 블록의 이유는 열린 메서드의 잘못된 매개 변수입니다. – maxima

+0

나는이 Ajax 요청의 시간을 계산하고 동기시키고 싶다. 이 매개 변수를 true로 설정하면이 문제가 해결됩니다. – maxima

0

인사말 최대 코드를 확인하고 안드레이의 대답은 중대하다 나는이 노트 :이

도메인 중 측면에서

1 XMLHttpRequest의 캔트 마십시오 요청 당신이 페이지 출력면을 요청해야하는 경우 도메인 할 서버 쪽.

2 안드레이에서 jquery로 피하기 위해 유감스럽게 생각합니다. 나는 그와 함께하지 않습니다. JavaScript에 대한 모든 것을 처음 배우고 다음으로 jquery와 어떤 역할을하는지 잘 알고 있어야합니다. 자바 스크립트 프로가되기 전에 일부 라이브러리에 대한 사용자가 아닌 openion

+0

1. 원산지를 상기시켜 주셔서 감사합니다. 2. jQuery 라이브러리를 tryed jQuery는 사용자를 위해 많은 일을한다. – maxima

+0

당신을 환영합니다 :)) – Marwan