フォームまたはビューをプログラムで開くときに、NavBar の無効化を検討する
カテゴリ: 設計、パフォーマンス
影響の可能性: 中程度
現象
URLでプログラム的にフォームやビューを開く時、ナビゲーション バー (NavBar) が有効だと、待ち時間が長いネットワークでクライアントのパフォーマンスが低下する可能性があります。
ガイダンス
URL を介してフォームやビューを開くようなカスタマイズを行う際に、ユーザーがナビゲーション バーをすべて表示する必要があるかどうかを判断します。 多くの場合、ユーザーはリンクを選択してフォームを開き、簡単な作業をした後、レコードを閉じます。 ナビゲーション バーを無効にすることで、ロードされるリソースの量が少なくなり、行われるネットワーク要求の数が少なくなります。
フォームやビューを開く URL を作成する場合は、navbar=off
を main.aspx
のページのクエリ ストリングのパラメータとして実装してください。 次の例では、ナビゲーションバーを無効にしてアカウント フォームを開きます。
function disableNavBar() {
var globalContext = Xrm.Utility.getGlobalContext();
return globalContext.getClientUrl() + "/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&etc=1&id={11112222-bbbb-3333-cccc-4444dddd5555}&pagetype=entityrecord&navbar=off";
}
重要
navbar = off クエリ文字列パラメータは main.aspx
ページでのみ利用可能です。
問題となるパターン
警告
これらのシナリオを回避する必要があります。
ナビゲーション バー (NavBar) が有効でも、ユーザーがパフォーマンスの問題を経験するわけではありません。 ただし、フォームやビューにその他のリソースを読み込まなければならないため、ネットワークへのリクエストが増えることになります。 潜伏性の高いネットワークでは、ナビゲーションバーを有効にしたままにしておくと、ユーザーエクスペリエンスが低下する可能性があります。
NavBar を有効にした構築済み URL の例を示します
function enabledNavBar() {
var globalContext = Xrm.Utility.getGlobalContext();
// By default, NavBar is set to true if you do not include the parameter in the query string:
return globalContext.getClientUrl() + "/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&etc=1&id={11112222-bbbb-3333-cccc-4444dddd5555}&pagetype=entityrecord";
}
function enabledNavBarExplicit() {
var globalContext = Xrm.Utility.getGlobalContext();
// Explicitly defining that the NavBar will be enabled
return globalContext.getClientUrl() + "/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444&etc=1&id={11112222-bbbb-3333-cccc-4444dddd5555}&pagetype=entityrecord&navbar=on";
}
追加情報
モデル駆動型アプリから他のレコードを開くと、サイトマップ内に定義された領域とサブエリアと一緒にナビゲーション バーがロードされます。 さらに、ユーザーがアクセスできる Office 365 アプリを表示する Office アプリ起動ツールr も表示します。