「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
* 目次 [#gd9749e9]
#contents

*概要 [#kbc4bb11]
[[ASP.NET Web Forms]]のUpdatePanelや、[[ASP.NET MVC]]のAjax.BeginFormで、~
サーバー側でJavaScriptを生成してUIを制御しているとき、JavaScriptの挙動の分析が困難になり、~
クライアント・サイドのJavaScriptフレームワークとシームレスに連動して部分更新を実現する仕組み。

*詳細 [#pc6b778b]

**[[ASP.NET Web Forms]]のUpdatePanel [#d17020b0]

***特徴 [#kd18543f]
-UpdatePanelを敷いた部分が部分更新となる。

-ソレ以外の部分は、全体更新と成る。

-仕組みとしては、
--部分更新イベントで全情報がポストバックされ、
--対象となるイベント・ハンドラが実行され、
--部分更新される部分のHTMLが返され、
--返されたHTMLがレンダリングされる。

***参考 [#qf721b2a]
-@IT

--[ASP.NET AJAX]UpdatePanelコントロール利用時の注意点とは?[2.0のみ、C#、VB]~
https://www.atmarkit.co.jp/fdotnet/dotnettips/672aspajaxasyncpost/aspajaxasyncpost.html

--第2回 PageRequestManagerクラスでUpdatePanelコントロールを極める!(1/5)~
https://www.atmarkit.co.jp/fdotnet/ajaxlib/ajaxlib02/ajaxlib02_01.html

**[[ASP.NET MVC]]のAjax.BeginForm [#w8ca59e1]

***特徴 [#u74ece16]

-[[Html.BeginForm>ASP.NET MVCの用語#w59fdfea]]と
--モジュール構造は大きく変わらない。~
(部分ビューは、共通化目的でHtml.BeginFormにも存在する。)

--ただし、以下のように動作は大きく異なる。
---jQueryを使用してリクエストし、
---更新部位のレスポンスを受けてJavaScriptで描画。

-部分更新のターゲットを意識する必要がある。
--送信時に設定したターゲット以外を更新しようとして、結果的に画面遷移する場合、
--RedirectToAction・RedirectToRoute等でActionResultを返すことが出来ないので、~
JavaScriptResult等でJavaScriptを返し、画面遷移をする必要がある。

***disconへ。 [#m5bf5f25]
以下の[[問題>#s614e4ce]]が大きかったのか、[[ASP.NET Core MVCで、disconとなっている>ASP.NET Core MVC#g4420705]]。

***参考 [#c8ae6c29]
-連載:ASP.NET MVC入門:第3回~
ActionResultオブジェクトでアクション操作も自由自在 (4-5) - @IT~
http://www.atmarkit.co.jp/ait/articles/0907/10/news109_4.html
>その性質上、Ajax通信の結果をページの一部に~
反映させるようなケースで利用することになるだろう。

-ASP.NET MVC で Ajax を使った時の書き方に悩んだ - dunno logs~
http://dany1468.hatenablog.com/entry/2013/01/08/144546

**部分描画の問題点 [#s614e4ce]

***懸念 [#i25df518]
もともと、[[ASP.NET Web Forms]]のUpdatePanelでは、
-ScriptManagerがブラックボックスで
-他のJavaScriptに干渉する可能性があり。
-危なっかしくて触りたくない感があった。

***実際 [#ob4d36e0]
実際のトコロ、

-JavaScriptの挙動の分析が困難になり、~
特に、サーバー側でJavaScriptを生成してUIを制御しているとき~
問題発生時のトラブルシュートが難しくなることがある。

-部分描画では、ブラウザがレスポンス待ちかどうかユーザが識別できず、~
レスポンスに時間が抱えるケースで、UXが低下するという問題を生んだ。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS