2011-09-02 11 views
1

asp.net 프레임 워크 4.0을 사용하여 웹 응용 프로그램을 개발 중입니다. 내 응용 프로그램에서 너무 많은 PageMethods를 사용하고 있습니다. 즉, 응용 프로그램이 완전히 ajax를 사용할 수 있습니다. 페이지 부분 게시를 피하기 위해 UpdatePanel을 사용하지 않습니다. 제 시나리오에서는 AJAX 요청이 PageMethods에 의해 진행될 때 progressbar를 보여주고 싶습니다. 나는 그것이 사용하지 않는 UpdatePanel과 연관되어 있기 때문에 UpdateProgress를 사용할 수 없다. 함수를 호출하기 전에 진행 막대를 표시 할 수 있습니다. & onsuccess 나는 그것을 숨길 수 있습니다. 나 각 & 모든 pagemethods에 대한 & 숨기기 코드를 보여 작성을 위해 같은PageMethods의 진행 표시 줄을 표시/숨기는 방법?

function CallPageMethod() 
{ 
    $("#progressDiv").show(); 
    PageMethods.GetCurrentDate(Onsuccess); 
} 

function Onsuccess(result) 
{ 
     $("#progressDiv").hide(); 
     alert(result); 
} 

이 방법은 미세하지만 매우 어려운 작동합니다. 내 페이지에는 너무 많은 PageMethod가 포함되어 있습니다. 어떻게하면 각 AJAX 요청에 대해 진행률 표시 줄을 표시하거나 숨길 수있는 일반적인 메소드를 작성합니까?

답변

2

일반적인 방법으로 진행 표시 줄 숨기기 및 표시를 분리하고 공유하는 방법을 찾고 있다면 확실하게 모두에게 $("#progressDiv").show() 또는 $("#progressDiv").hide()을 수행하는 JS 기능을 사용할 수 있습니다. 그러한 함수는 심지어 동일 할 수 있으며 모든 PageMethod 호출 위치보다 매개 변수로 표시되는 bool을 허용 할 수 있으며 모든 OnSuccess에서이 함수를 호출합니다.

실제로 모든 페이지 메서드 호출이 달라야하고 모든 OnSuccess가 다르게 처리되도록 할 수 있으므로 훨씬 더 많은 작업을 수행 할 수 있다고 생각합니다. 따라서 처리기를 구분해야합니다.