2009-10-28 3 views
0

저는 ASP.NET에서 웹 응용 프로그램을 개발했으며 사용자가 할 수있는 일 중 하나는 긴 작업입니다. 기본적으로이 작업은 데이터베이스의 모든 데이터를 수집하여 특정 XML 형식으로 변환합니다. 이 XML은 데이터의 "스냅 샷"으로 다시 데이터베이스에 저장됩니다. 따라서 XML을 사용자에게 반환하지 않습니다.긴 작업 중에 사용자에게 피드백 제공

불행히도이 작업을 처리하는 데 몇 분이 걸립니다. 사용자가 참을성이 없어서 아무 일도 일어나지 않기 때문에 두 번째 및 세 번째 스냅 샷을 만들려고하는 경우를 제외하면 이는 실제 문제는 아닙니다.

그래서 사용자에게 간단한 피드백을 제공하고 현재 작업에 대해 알리면 응용 프로그램이 뭔가를하는지 알 수있는 간단한 방법이 필요합니다. 스냅 샷 빌더에는 현재 조치에 대한 메시지를 생성하는 이벤트가 이미 포함되어 있으므로이 이벤트를 사용자에게 라이브 피드백을 제공하는 방법에 연결하는 방법을 찾을 수 있습니다.

불행히도 제 3 자 구성 요소는 사용할 수 없으며 VS2008의 일부만 사용할 수 있습니다. (경영진은 제 3 자 코드에 대한 라이센싱 문제에 대해 대단히 걱정하고 있습니다.) 그래서 저는 Ajax에서 직접 뭔가를 써야합니다.

저는 매우 숙련 된 프로그래머입니다. 그래도 이것이 첫 번째 Ajax 프로젝트가 될 것이므로 작업에 대한 명확한 설명이 필요합니다. 그렇다면 사용자에게 이해하기 쉬운 단계로 피드백을 제공하려면 어떻게해야합니까?

답변

2

이 요청에 AJAX를 사용하려면 UpdateProgress control을보고 장기 실행 프로세스를 초기화하는 페이지에서 UpdatePanel의 ID로 AssociatedUpdatePanelID을 설정해야합니다.

Here

는 AJAX를 사용할 수 있었고, 난 이전의 UpdateProgress 및 UpdatePanel 함께

내가 한 번 프로젝트에 비슷한 문제를 가지고 사용하는 방법을 보여 비주얼 스튜디오 해결책 UpdatePanel

Here를 사용하는 좋은 예입니다 그것을 내 응용 프로그램에서 아주 잘 작동하는 것으로 밝혀진 BusyBox을 사용하여 해결했습니다.

2

글쎄, 당신이 새롭기 때문에 나는 더 효율적인 고급 방법을 배우기 위해 열심히 노력하지 않을 것이지만 asp.net 아약스 라이브러리에 UpdateProgress을 사용할 수 있습니다. 아약스가 백그라운드에서 뭔가를하고있을 때 UpdateProgress은 사용자에게 페이지가 뭔가를하고 있음을 알리는 사용자 지정 메시지를 보여줍니다.

기본적으로 UpdatePanel을 사용하면 asp.net 페이지에서 ajax를 사용하고 UpdateProgress에서 사용자에게 진행 상황을 표시 할 수 있습니다. http://www.asp.net/learn/ajax-videos/

을하지만 다른 방법을 학습에 진출 할 경우 :

당신은 비디오 포맷에서 더 많은 정보를 찾을 수 있습니다

나는 당신이 당신의 ASP에서 Ajax를 사용하려면 마이크로 소프트의 방법을 사용하는 것이 좋습니다하지 않을 것입니다. 대신에 jQuery 아약스 및 웹 서비스를 사용하여보다 효율적이고 빠른 페이지를 제공 할 수 있습니다.

더 :jQuery Ajax Library

마이크로 소프트 비주얼 스튜디오는 jQuery를 그렇게 JQuery와 코드를 작성하기위한 인텔리를 제공하고 지금도 쉽습니다.

P .: 내가 추천 한 것은 전적으로 무료이며 오픈 소스입니다.

+0

저는 오픈 소스를 사용하는 데 아무런 문제가 없지만 최종 제품은 다른 사람들에게 배포 할 수있는 폐쇄 형 소스 프로젝트입니다. 따라서 우리는 가능한 라이센스 충돌에 대해 더주의해야합니다. 결과적으로, 우리는 경영진의 승인없이 제 3 자 제품을 사용하지 않습니다. (오픈 소스 일지 여부는 중요하지 않으며 라이센스를 먼저 확인하고 싶어합니다.) –

관련 문제