2009-11-02 3 views
1

사용자 브라우저가 자바 스크립트를 지원하는지 여부에 따라 아약스에 의존하거나 의존하지 않을 수도있는 모바일 웹 애플리케이션을 구축하고 있습니다. JQuery를 사용하고 있기 때문에 AJAX 기능을 사용하기 전에 모바일 브라우저가 JQuery를 통해 AJAX를 지원하는지 확인하고 싶습니다.모바일 브라우저에서 AJAX 테스트

페이지를 렌더링하는 방식 때문에 Opera Mini에 문제가 있습니다. 어떻게 확인해야할지 모르겠습니다. 여기에 내가 AJAX를 테스트하기 위해 사용하고 코드는 다음과 같습니다

init_ajax은() 내 AJAX 기능을 가능하게하고 내 정적 기능을 비활성화
$(document).ready(function() { 
    $.get(
     'test.txt', 
     function() { 
      init_ajax(); 
     } 
    ); 
}); 

.

문제는 브라우저에 페이지를 출력하기 전에 Opera Mini에서이 코드를 성공적으로 실행했지만 실제로 렌더링 된 페이지에서 Ajax가 작동하지 않는다는 것입니다. document.ready 대신 setTimeout에서이 함수를 실행했지만 동일한 문제가 발생했습니다.

모바일 브라우저에서 AJAX의 존재 여부를 정확하게 테스트 할 수있는 보편적 인 방법이 있습니까?

P. 그래서

http://www.opera.com/mini/demo/

[편집] 나는이 응용 프로그램에서는 setInterval을 사용하여 분당 약 한 번 아약스 전화를 걸 필요가 있음을 언급한다 : 당신이 오페라 미니의 솔루션을 테스트하려면, 여기에 완전한 기능의 에뮬레이터가있다 Opera Mini는 onclick에 의해 트리거 될 때 일부 아약스를 지원하지만, 특정 간격으로 작성된 아약스 호출을 지원할 수있는 방법은 없다고 생각합니다. 우리가 이것을 테스트 할 수 있다면 위의 문제를 해결할 수있을 것입니다.

+0

모바일 브라우저가 아약스를 지원하는지 실제로 묻지는 않지만 모바일 브라우저가 jquery를 통해 아약스를 지원하는 경우. 큰 차이. –

답변

0

오페라 미니는 오페라 서버에서 웹 요청을 검색하지 않고 페이지를 렌더링 한 다음 출력을 이미지 및 텍스트 형식으로 축소 된 기능으로 대상에 전달합니까? 오페라 미니 서버 팜에서 렌더링이 일어나서 클라이언트와 웹 서버 간의 실제 통신이 없기 때문에 실제로 아약스를 수행 할 수 없습니다.

"Opera Mini/1.2"의 사용자 에이전트를 보는 것이 이상적 일 수있는 Opera Mini에 대한 검사를 수행하는 다른 방법이 필요할 수 있습니다. 모바일 브라우저에 대한 점검을 수행하는 것과 관련해서는 모바일 브라우저가 제공하는 기능의 범위에 따라 다릅니다. 때로는 확인할 수 없으며 특정 모바일 브라우저를 이름별로 찾아야합니다.

여기 더 정보는 Designing With Opera Mini in Mind입니다.

+0

당신이 옳다고 생각합니다. Opera Mini는 약 2 초 동안 스크립트를 실행 한 다음 페이지를 중지하고 전달합니다. 따라서 약 2 초 동안 페이지가 완전히 작동하므로 해당 기간에 발생한 모든 테스트는 잘못된 결과를 렌더링합니다. – Travis

+0

오페라 미니 서버는 스크립트를 실행하고 요청을 수행 한 다음 모바일 클라이언트로 전달합니다. 그래서이 경우 실제로 유일한 옵션은 사용자 에이전트가 직접이를 식별하고 Ajax 기능을 비활성화하는 것입니다. – skirmish

관련 문제