Day09-1

概要

このレッスンの狙い

Ajax

従来のアプリケーションの挙動


@startuml
artifact Page
note left: ①ページ上で\r\nイベントが発生\r\n\r\n④ページ全体を再描画
node Server

Page -> Server: ②サーバに要求データを送信
Server -> Page: ③サーバでの処理結果を\r\nHTML形式で応答
@enduml

従来のアプリケーションの挙動

Ajaxアプリケーションの挙動


@startuml
artifact Page
note left: ①ページ上で\r\nイベントが発生\r\n\r\n④必要な箇所だけを再描画
node Server

Page -> Server: ②JavaScriptでサーバと\r\n非同期通信
Server -> Page: ③サーバでの処理結果を\r\nXMLなどの形式で応答
@enduml

Ajaxアプリケーションの挙動

解説

問題点

ASP.NET3.5で標準搭載されたAJAXライブラリ(AJAX Extensions)

AJAX Extensionsで提供されるサーバコントロール

コントロール 概要
ScriptManager Ajax機能の動作に必要なJavaScriptのコードを管理
ScriptManagerProxy マスタページ対応版のScriptManagerコントロール
UpdatePanel 部分的な更新に対応したパネルを定義
Timer 一定時間おきに任意の処理を実行するタイマ機能を実装
UpdateProgress 非同期通信中に[通信中]メッセージや画像を表示

ScriptManager コントロール

UpdatePanel コントロール

(1) UpdatePanelコントロールの中でポストバックが発生した場合
(2) Triggerプロパティで指定されたイベントが発生した場合

非同期通信中であることを表すUpdateProgressコントロール

UpdateProgressコントロールで利用可能な主なプロパティ

プロパティ 概要 デフォルト値
AssociatedUpdatePanelID 関連付けるUpdatePanelコントロール (全UpdatePanel)
DisplayAfter 非同期通信を開始した何ミリ秒後に通信メッセージを表示するか 500
DynamicLayout 通信メッセージの表示レイアウトを動的に確保するか True

DisplayAfterプロパティが0じゃない理由

一定時間沖に決まった時間を処理するTimerコントロール

UpdatePanelコントロールを利用する場合の注意点

1. UpdatePanelコントロールの配下では利用できないコントロールがある。

2. リクエストデータが部分化されるわけではない

まとめ

TOPへ