フォームまたはビューをプログラムで開くときに、NavBar の無効化を検討する
カテゴリ: 設計、パフォーマンス
影響の可能性: 中程度
現象
URL を使ってフォームまたはビューを開く場合、ナビゲーション バー (NavBar) が有効だと、待ち時間の長いネットワーク上でクライアントのパフォーマンスが低下する可能性があります。
ガイダンス
URL を介してフォームやビューを開くようなカスタマイズを行う際に、ユーザーがナビゲーション バーをすべて表示する必要があるかどうかを判断します。 多くの場合、ユーザーはリンクを選択してフォームを開き、簡単な作業をした後、レコードを閉じます。 ナビゲーション バーを無効にすることで、ロードされるリソースの量が少なくなり、行われるネットワーク要求の数が少なくなります。
フォームやビューを開く URL を作成する場合は、navbar=off
を main.aspx
のページのクエリ ストリングのパラメータとして実装してください。 次の例では、ナビゲーションバーを無効にしてアカウント フォームを開きます。
function disableNavBar() {
var globalContext = Xrm.Utility.getGlobalContext();
return globalContext.getClientUrl() + "/main.aspx?appid=9411ee28-4310-e811-a839-000d3a33a7cb&etc=1&id={00000000-0000-0000-00AA-000010001004}&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=9411ee28-4310-e811-a839-000d3a33a7cb&etc=1&id={00000000-0000-0000-00AA-000010001004}&pagetype=entityrecord";
}
function enabledNavBarExplicit() {
var globalContext = Xrm.Utility.getGlobalContext();
// Explicitly defining that the NavBar will be enabled
return globalContext.getClientUrl() + "/main.aspx?appid=9411ee28-4310-e811-a839-000d3a33a7cb&etc=1&id={00000000-0000-0000-00AA-000010001004}&pagetype=entityrecord&navbar=on";
}
追加情報
モデル駆動型アプリから他のレコードを開くと、サイトマップ内に定義された領域とサブエリアと一緒にナビゲーション バーがロードされます。 さらに、ユーザーがアクセスできる Office 365 アプリを表示する Office アプリ起動ツールr も表示します。
関連項目
URL を使用してフォーム、ビュー、ダイアログ、およびレポートを開く
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。