2013-01-05 2 views
26

Google에서 답변을 찾을 수없는 작은 의문이 있습니다. 그래서 여기에서 답을 찾을 수있을 것이라고 생각했습니다. 우리는 왜스크립트 관리자 제어가 실제로 무엇을합니까?

<asp:UpdatePanel runat="server"> in out aspx page. 

희망 답을 줄 수있는 몇 가지 중 하나를 사용하기 위해

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

컨트롤을 추가해야합니다.

답변

28

ScriptManager 컨트롤은 Microsoft AJAX 라이브러리 용 스크립트를 페이지에 등록합니다. 이를 통해 부분 페이지 렌더링 및 웹 서비스 호출과 같은 클라이언트 스크립트 지원 기능을 사용할 수 있습니다. 당신이 원하는은 Microsoft AJAX 라이브러리의

1. 클라이언트 스크립트 기능 및 사용자 지정 스크립트 :

다음과 같은 ASP.NET AJAX의 기능을 활성화하기 위해 페이지에 ScriptManager 컨트롤을 사용해야합니다 브라우저에 보내십시오. 페이지 영역에있게

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(
     this.GetType(),"myscript","alert('hello world!');"); 
} 

2 부분 페이지 렌더링은 독립적 게시하지 않고 갱신된다. ASP.NET AJAX UpdatePanel, UpdateProgress 및 Timer 컨트롤을 사용하려면 ScriptManager 컨트롤에서 부분 페이지 렌더링을 지원해야합니다.

3. 웹 서비스 용 JavaScript 프록시 클래스. 웹 서비스를 강력한 유형의 객체로 노출하여 클라이언트 스크립트를 사용하여 웹 서비스에 액세스 할 수있게합니다.

[WebMethod] 
public int Add(int a, int b) { return a + b; } 

function CallAdd() 
{ 
    // method will return immediately 
    // processing done asynchronously 
    WebService.Add(0,6, OnMethodSucceeded, OnMethodFailed); 
} 

4. 스크립트 클래스 ASP.NET 인증 프로파일과 응용 서비스에 액세스한다.

Sys.Services.AuthenticationService.login 
Sys.Services.AuthenticationService.logout 

<script type="text/javascript"> 
    function MyMethod(username, password) 
    { 
     Sys.Services.AuthenticationService.login(username, 
      password,false,null,null,null,null,"User Context"); 
    } 
</script> 

더 이상 답변 게다가 http://msdn.microsoft.com/en-us/magazine/cc163354.aspx

+0

** Microsoft AJAX 라이브러리 **를 사용하지 않고 'ScriptManager' ***을 사용할 수 있습니까? – Kiquenet

2

ScriptManager 컨트롤은 AJAX 사용 ASP.NET 웹 페이지에 대한 클라이언트 스크립트를 관리합니다. UpdatePanel 또는 다른 AJAX 컨트롤을 사용하려면 처음에 ScriptManager 컨트롤을 사용해야합니다.

13

에서, 나는 ScriptManager 컨트롤을 사용하여 뒤에 이유에 대한 몇 가지 포인트를 추가하고 싶습니다 참조하십시오. UpdatePanelScriptManager 컨트롤은 ASP.NET AJAX 사용 사이트에 사용됩니다. 기존의 웹 페이지에서 전체 페이지를 다시 게시 후로드되어 있기 때문에 우리는 그들을 사용

  • , 먼저는 브라우저에 전송 된 HTML은 필요 이상으로 훨씬 더 크다. 전체 페이지가 교체되기 때문에
  • 둘째, 는, 브라우저는 이전을 기각 한 다음 새 하나를 그릴 수있다. 이로 인해 페이지가 "깜박"하게되어 사용자에게 좋지 않은 영향을줍니다. enter image description here

ScriptManager 제어 페이지 클라이언트와 서버 간의브리지로서 기능한다. 다른 AJAX 컨트롤 중 하나를 추가해야하는 경우 브리지와 같으므로이 컨트롤을 사용해야합니다. 그것은 스크립트 리소스 (클라이언트에서 사용되는 JavaScript 파일)를 관리하고, 으로 표시된 부분 페이지 업데이트를 처리하고 웹 서비스 및 ASP.NET 응용 프로그램 서비스 등의 웹 사이트와의 상호 작용을 처리합니다. (예 : ) 구성원, 역할 및 프로필. UpdatePanel 내의 컨트롤 중 하나가 서버로 다시 게시 될 때마다 해당 UpdatePanel의 내용 만 새로 고칩니다.

당신이 ( 피들러 또는 Wireshark와 같은 네트워크 분석 도구를 사용하여) 브라우저 서버로부터 보내지는 데이터를 분석하면, 당신은 제한된 양의 데이터 만 클라이언트로 보내지는 것을 볼 것입니다. 당신은 당신이 페이지의 소수에 아약스 기능을 필요가 있다고 생각하는 경우

당신은 일반적으로 콘텐츠 페이지에서 직접 ScriptManager 컨트롤을 배치.

당신이 마스터 페이지에 ScriptManager을 배치 할 수 있습니다 당신의 ASPX 페이지의 많은에 Ajax 기능을 사용하는거야, 그래서이 마스터를 기반으로 모든 페이지에서 가능한 경우. : 그래서,

만 페이지 (D 즉, 두 다리가 발생할 경우 하나 개의 다리, 다음 페이지 요청/응답이!? 갈 곳에서 혼란스러워 할 수 있습니다) 당 하나의 ScriptManager 수 있습니다 마스터 페이지에 하나를 추가하면 하나를 콘텐츠 페이지에 추가 할 수 없습니다. 콘텐츠 페이지의 마스터 페이지에 인 ScriptManager 컨트롤에 액세스하려면 ScriptManagerProxy을 사용할 수 있습니다.

관련 문제