フォームまたはビューをプログラムで開くときに、NavBar の無効化を検討する

カテゴリ: 設計、パフォーマンス

影響の可能性: 中程度

現象

URL を使ってフォームまたはビューを開く場合、ナビゲーション バー (NavBar) が有効だと、待ち時間の長いネットワーク上でクライアントのパフォーマンスが低下する可能性があります。

ガイダンス

URL を介してフォームやビューを開くようなカスタマイズを行う際に、ユーザーがナビゲーション バーをすべて表示する必要があるかどうかを判断します。 多くの場合、ユーザーはリンクを選択してフォームを開き、簡単な作業をした後、レコードを閉じます。 ナビゲーション バーを無効にすることで、ロードされるリソースの量が少なくなり、行われるネットワーク要求の数が少なくなります。

フォームやビューを開く URL を作成する場合は、navbar=offmain.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 も表示します。
NavBar の有効化と無効化の比較。

関連項目

URL を使用してフォーム、ビュー、ダイアログ、およびレポートを開く

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。