2010-03-19 5 views
0

AJAX를 사용할 때 대개 각 요청 전에 무엇인가 작업하여 사용자가 잠시 기다릴 것이라고 알립니다. 일반적으로 애니메이션로드 GIF 만 추가하면됩니다. 이렇게하면 파이어 폭스가 기대했던대로 작동하고 다음 줄로 컨트롤을 이동하기 전에 GIF를 추가합니다 (AJAX가 호출되는 곳). Chrome에서는 브라우저를 잠그고 AJAX가 완료 될 때까지 무언가의 색상을 변경하는 경우를 포함하여 DOM을 전혀 변경하지 않습니다 (이미지를로드하는 것만 제외). 그래도 AJAX가 아닙니다. 컨트롤을 보유하고있는 모든 것이고 컨트롤이 창에 다시 표시 될 때까지 DOM을 변경하지 않습니다.Google 크롬, AJAX 전에 스타일을 조정하는 IE 문제

function submit_order() 
{ 
    $('#my_element').css('color', '#FF0000'); // Make text red before calling AJAX 
    $.getJSON('/api/', my_callback) 
    // Note, in IE and Chrome #my_element isn't turned red until the AJAX finishes and my_callback is run 
} 

왜 이런 일이 않고, 어떻게 그것을 해결할 수 :

예 (jQuery를 사용)? 나는 데이터의 성격 때문에 ASYNC를 사용할 수 없다 (큰 혼란이 될 것이다). 스타일을 설정 한 후 window.setTimeout(myajaxfunc, 150)을 사용하여 실험했는데 스타일을 설정했는지 확인한 다음 시간 초과를 시도했지만 AJAX에서만 문제가 아니라 일반적으로 스크립트의 제어라고 생각합니다. 따라서 AJAX에 언급하는 제목은이 문제를 해결할 수있는 유일한 시간이기 때문에).

이것은 BTW 기능과 관련이 없습니다. 당신이 아약스 프로세스의 다양한 부분에 이벤트를 첨부 할 jQuery의 ajaxStart, ajaxSend, ajaxStopajaxError 방법에

답변

1

봐.

+0

@ 톰 이것은 전적으로 정직하지 않았기 때문에 이번에는 도움이되지 않습니다. jQuery를 사용하고 있지만 AJAX 용 외부 API를 사용하고 있습니다. 구현 방식과 비슷하지만 내가했던 방식대로 질문했습니다. 그러나 내가 알지 못했던 좋은 정보이기 때문에 대답을 선택했습니다. 지금부터 jQuery에서 순전히 작업 할 때 필자는 수동으로 사용하기 전과 후에 물건을 사용하는 것보다 확실히 사용하게 될 것입니다. – orokusaki