ASP.NET AJAX로 작성된 것과 같은 AJAX 응용 프로그램에서 클라이언트에 서버에 발생한 이벤트를 알리는 방법은 무엇입니까? Gmail과 같은 애플리케이션을 의미했습니다. Gmail은 새 이메일이 도착할 때마다 클라이언트에게 알려줍니다. 저는 ASP.NET AJAX에서 UpdatePanel을 사용하여 어떻게 수행하는지 매우 흥미 롭습니다. 나는 UpdatePanel이 Triggers 속성을 가지고 있다는 것을 알고 있지만, 그것은 오직 내 자신의 클래스의 이벤트가 아닌 Controls 이벤트에서만 작동합니다.AJAX 응용 프로그램이 클라이언트에 서버에 발생한 이벤트를 알리는 방법은 무엇입니까?
답변
Ajax 응용 프로그램은 서버 상태를 지속적으로 확인하여이 효과를 얻습니다. 그들은 항상 클라이언트로 작동하고 서버로부터 요청을 수신 할 수 없습니다.
응용 프로그램에서 AJAX를 사용하면 통신 모델에 새 레이어가 추가됩니다. 고전적인 웹 응용 프로그램에서 클라이언트 (브라우저)와 웹 서버 간의 통신은 HTTP 요청을 사용하여 직접 수행되었습니다.
방문자가 페이지를 요청하면 서버는 전체 HTML 및 CSS 코드를 한 번에 보냅니다. 방문자가 양식을 채우고 제출하면 서버는 정보를 처리하고 페이지를 다시 작성합니다. 그런 다음 전체 페이지를 클라이언트로 다시 보냅니다. 등등.
AJAX를 사용할 때 페이지는 처음 요청되었을 때 한 번만로드됩니다. 페이지를 구성하는 HTML 및 CSS 코드 외에 일부 JavaScript 파일 인 AJAX 엔진도 다운로드됩니다. 그러면 서버에 대한 모든 데이터 요청이 JavaScript 호출로이 엔진에 전송됩니다. 그런 다음 AJAX 엔진은 웹 서버에서 정보를 비동기 적으로 요청합니다. 따라서 사용자가 필요하기 때문에 작은 페이지 비트 만 요청되고 브라우저로 전송됩니다. 그런 다음 엔진은 전체 페이지를 다시로드하지 않고 정보를 표시합니다. 이렇게하면 전체 페이지가 아닌 클라이언트와 서버간에 필요한 정보 만 전달되기 때문에 반응이 훨씬 빠른 인터페이스로 이어집니다. 이렇게하면 정보가 즉시 표시되어 웹 응용 프로그램을 바탕 화면 친밀도에 더 가깝게 느낄 수 있습니다.
AJAX 통신 모델 :
더 나은 클라이언트 (브라우저)와 원격 서버뿐만 아니라 고전과 AJAX 구동 애플리케이션 사이의 차이 사이의 통신을 설명하기 위해, 아래의 그림을 살펴 도 그림 1 : 클래식 AJAX 통신 모델 서버와 통신 AJAX 방식의 중심 alt text http://www.interaktonline.com/img/art/AJAX/ajax_comm_model_gif.gif?0.33986484845155046
는 AJAX 엔진있다. 이것은 XMLHttpRequest 객체를 인스턴스화하고 사용하는 JavaScript 코드에 불과합니다. 이것은 전체 페이지를 새로 고치지 않고도 서버로 HTTP 요청을 보내고받으며 처리 할 수있는 JavaScript 객체입니다.
AJAX 기반 애플리케이션에서 사용자가 중단하지 않고도 데이터에 대한 HTTP 요청을 백그라운드에서 완벽하게 수행 할 수 있습니다. 즉, 필요한 페이지 섹션이 서버에서 수신되는 동안 사용자는 응용 프로그램을 계속 사용하고 사용할 수 있습니다. XMLHttpRequest 객체는 Internet Explorer에서 ActiveX 객체로 구현되었으며 이후에 대부분의 최신 브라우저 (FireFox, Safari)에서 기본 JavaScript 객체가되었습니다.
모든 종류의 모델에 추가 레이어를 추가하면 응답 시간이 늘어나지 만 이는 예외입니다. 이 새로운 레이어 (AJAX 엔진)를 사용하면 응답 시간이 단축되고 사용자 인터페이스가 응용 프로그램 로직에 훨씬 더 많이 연결되어있는 것처럼 보입니다. 더욱이, 사용자는 더 이상 페이지가 로딩 될 때까지 기다릴 필요가 없다.
- 1. 클라이언트가 중단되었을 때 서버에 알리는 방법은 무엇입니까?
- 2. 설치 프로그램에 제거 프로그램이 있음을 알리는 방법은 무엇입니까?
- 3. 다른 응용 프로그램에 내 응용 프로그램이 Windows 바탕 화면에 있음을 알리는 방법은 무엇입니까?
- 4. 웹 응용 프로그램이 아닌 웹 응용 프로그램에 웹 페이지의 변경 사항을 알리는 가장 좋은 방법은 무엇입니까?
- 5. 비활성 활동을 알리는 방법은 무엇입니까?
- 6. 모든 jquery ajax 이벤트를 차단하는 방법은 무엇입니까?
- 7. 블랙 베리 응용 프로그램이 서버에 액세스하려고 시도했습니다.
- 8. 다른 컨트롤에서 발생한 이벤트를 확인 하시겠습니까?
- 9. 많은 팔로어에게 알리는 방법은 무엇입니까?
- 10. RMI - 클라이언트에 서비스 할 서버에 스레드를 생성하십시오.
- 11. 웹 서비스가 고객에게 새로운 데이터를 알리는 가장 좋은 방법은 무엇입니까?
- 12. ajax 응답 콜백에서 이벤트를 발생시킨 대상 요소를 아는 방법은 무엇입니까?
- 13. 다른 어셈블리에서 발생한 이벤트를 구독하는 방법
- 14. ATA/IDE 인터럽트를 알리는 올바른 방법은 무엇입니까?
- 15. 브라우저에 캐시하지 않도록 알리는 적절한 방법은 무엇입니까?
- 16. http 응답으로부터 서버에 시간을 알리는 방법이 있습니까?
- 17. 격리 된 응용 프로그램에 종속 DLL 위치를 알리는 방법은 무엇입니까?
- 18. 휴대 전화에 응용 프로그램 폴더에 Midlet을 설치하라고 알리는 방법은 무엇입니까?
- 19. 응용 프로그램이 액세스하려고하는 파일을 확인하는 방법은 무엇입니까?
- 20. android에서 응용 프로그램 이벤트를 기록하는 방법은 무엇입니까?
- 21. 다른 피어가 통화가 종료되었음을 알리는 방법은 무엇입니까?
- 22. 다른 전화기에 걸려 오는 전화가있는 경우 SIP 클라이언트에 알리는 방법
- 23. NoMethodError가 발생한 클래스를 확인하는 방법은 무엇입니까?
- 24. 사이트에 발생한 모든 오류를 기록하는 방법은 무엇입니까?
- 25. 예외가 발생한 정확한 지점을 얻는 방법은 무엇입니까?
- 26. ASP.NET AJAX : 서버 쪽에서 클라이언트에 정보를 보내려면 어떻게해야합니까?
- 27. 웹 응용 프로그램이 스트럿트에서 서로 통신하는 방법은 무엇입니까?
- 28. ShellExecute 및 C 프로그램에서 시작한 파일을 닫는 이벤트를 알리는 메시지
- 29. 응용 프로그램이 매우 느린가요?
- 30. Windows 콜백에서 Delphi 응용 프로그램에 알리는 가장 좋은 방법
답장을 보내 주셔서 감사합니다.하지만 서버에 지속적으로 연결되어 있기 때문에 성능 및 대역폭이 소모됩니까? –
정확히 말하면 서버에 지속적으로 연결되어 있지는 않지만 (요청이있을 때마다 연결이 끊어짐) 서버에 지속적으로 요청해야합니다 (예 : 매 10 초마다).나는 아약스 메시지가 대개 아주 작기 때문에 대역폭에 성능상의 불이익이있을 수 있다고 생각하지 않는다. (일반적으로 응답은 xml이고 길이는 약 킬로바이트이다.) 유일한 문제는 사용중인 폴링 모델입니다. 새 메시지가 없을지라도 폴링 중입니다. 예를 들어 이중 통신 확인을 원한다면 자바 애플릿. – empi