2008-11-15 9 views
1

저는 백엔드에서 PHP로 아약스 호출을하는 자바 스크립트 (JQuery)를 사용하여 제 가족 웹 사이트를 다시 작성했습니다. 그것은 당신의 표준 "이미지 썸네일과 하나의 메인 이미지의 뭉치이고, 썸네일 이미지를 클릭하면 메인 이미지가"종류의 것 "으로 바뀝니다. Firefox를 사용할 때는 모든 것이 예상대로 작동하지만 IE에서는 썸네일을 클릭하면 기본 이미지가 클릭 한 상태로 변경된 다음 즉시 첫 번째 이미지로 변경됩니다. MS Script Debugger를 사용해 보았습니다. 아약스 호출을 시작하는 자바 스크립트 코드에서 중단 점을 설정하고 축소판을 누르면 축소 점이 실행됩니다. 그렇다면 F5를 누르고 계속되지만 다시는 발사되지 않습니다. 네트워크를 통해 실제 TCP 패킷을보기 위해 Wireshark를 사용한다면 서버에 둘 이상의 요청을 확실히 보내고 있음을 알 수 있습니다. 두 번째 쿼리 (원본 이미지로 되돌릴 수있는 쿼리)가 어디에서 유래되었는지 파악할 수 없습니다.IE에서 불량 Ajax 요청의 소스를 어떻게 찾을 수 있습니까?

제안 사항? 제가 말하고자하는 한 가지 예가 here입니다.

+0

당신은 그들이 말하는 것을 알고 있습니다. 파이어 폭스, 사파리, 오페라 및 전세계의 다른 모든 브라우저에서 90 %의 시간을 보내고, 90 %가 IE에서 작동하도록 시간을 보냅니다. –

답변

3

디버깅이 일어나고있는 모습입니다 :

첫 번째 이미지가 pocessed 후, 크기 조정 이벤트가 발생되고, 그래서이 코드가 호출된다 :

$ (창) .bind ("resize", function() {ResizeWindow ('nicholas-1');}) ;;}));

아시다시피 갤러리를 새로 고칩니다. 이제는 왜 이런 일이 일어나는지 말할 수는 있지만 문제가 시작되는 곳입니다.

IE 디버깅을 위해 VS2008을 사용했습니다. 그럼 난 단순히 내가 도적 아약스 호출을 발견했을 때 나는이 호출 스택 창을 열고 처음 두 아약스 호출을 실행 F5를 명중하고

// Send the data 
    try { 
     xhr.send(s.data); 
    } catch(e) { 
     jQuery.handleError(s, xhr, null, e); 
    } 

: 나는 다음에) $ 아약스 (에서 휴식을 넣어 이전에 붙여 넣은 함수로 호출 스택을 다시 걸어갔습니다.

행운을 빈다.

+0

조금 더 디버깅해야하지만 크기 조정 핸들러를 사용하지 않으면 문제가 해결됩니다. 감사! –

+0

환영합니다! 그런데 깔끔한 사이트 ;-) – JoshBerke

0

IE는 작품의 조각은 그렇지? 이런 식으로 해봤습니까?

var inProcess = 0;

기능 이벤트 핸들러() 그런데 {

if (inProcess == 0) { 

    inProcess = 1; 

    // do stuff 

    setTimeout('inProcess = 0', 5000); 

} 

}

귀여운 아이. 여기에 귀하의 사이트를 통해

관련 문제