Подтвердить что ты не робот

Что делает диспетчер управления script на самом деле?

У меня есть небольшое сомнение в том, что я не могу ответить Google, поэтому подумал, что могу найти ответ здесь. Почему мы должны добавлять

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

чтобы использовать

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

надеюсь, что кто-то может дать ответ.

4b9b3361

Ответ 1

Функция ScriptManager регистрирует script для библиотеки Microsoft AJAX со страницей. Это позволяет поддерживать клиентские функции script, такие как частичное отображение страниц и вызовы Web-сервиса.

Вы должны использовать элемент управления ScriptManager на странице, чтобы включить следующие функции ASP.NET AJAX:

1. Клиент- script функциональности библиотеки Microsoft AJAX и любой пользовательский script, который вы хотите отправить в браузер.

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 для веб-служб, которые позволяют использовать клиентский script для доступа к веб-службам, выставляя веб-службы как строго типизированные объекты.

[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. классы JavaScript для доступа к службам проверки подлинности 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

Ответ 2

Помимо вышеприведенных ответов, я хотел бы добавить несколько соображений по причине использования элемента управления ScriptManager. Элементы управления, которые вы упомянули UpdatePanel и ScriptManager, используются для сайтов ASP.NET AJAX с поддержкой.

  • Мы используем их во-первых, потому что на традиционных веб-страницах вся страница загружается после обратной передачи, HTML, отправленный в браузер, намного больше чем это должно быть.
  • Второй, потому что вся страница заменена, браузер должен отменить старую, а затем нарисовать новую. Это приводит к тому, что страница "мерцает", что приводит к непривлекательной работе с пользователем. enter image description here

Элемент ScriptManager служит как мост между клиентской страницей и сервером. Поскольку это похоже на мост, вы должны использовать этот элемент управления, если необходимо добавить какой-либо из других элементов управления AJAX. Он управляет Ресурсы script (файлы JavaScript, используемые на клиенте), заботятся об обновлениях частичной страницы, как показано ранее, и взаимодействует с вашим веб-сайтом для таких вещей, как веб-сервисы и ASP.NET услуги приложений таких как членство, роли и профиль. Всякий раз, когда один из элементов управления в UpdatePanel вызывает обратную передачу сервер, обновляется только контент внутри этой UpdatePanel.

Если вы проанализируете данные, которые отправляются с сервера в браузер (с помощью инструмента сетевого анализа, такого как Fiddler или Wireshark), вы увидите, что клиенту отправляется только ограниченное количество данных.

Обычно вы размещаете элемент управления ScriptManager непосредственно в содержимом если вы считаете, что вам нужны возможности Ajax только на нескольких страницы.

Если вы собираетесь использовать функциональность Ajax на многих ваших страницах ASPX, вы можете поместить ScriptManager на главную страницу, чтобы она была доступна на всех страницах, основанных на этом хозяине.

У вас может быть только один ScriptManager на странице (т.е. только один мост, если есть два моста, тогда запрос/ответ страницы может запутаться от того, куда идти!?: D), поэтому, если вы добавите его на главную страницу, вы не могу добавить еще один на страницу содержимого. Чтобы получить доступ к элементу управления ScriptManager, который определенный на главной странице с страницы содержимого, вы можете использовать ScriptManagerProxy.

Ответ 3

Элемент управления ScriptManager управляет клиентом script для веб-страниц ASP.NET с поддержкой AJAX. Поэтому, чтобы использовать UpdatePanel или любые другие элементы управления AJAX, мы должны сначала использовать элемент управления ScriptManager.