次の方法で共有


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

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

影響の可能性: 中程度

現象

URLでプログラム的にフォームやビューを開く時、ナビゲーション バー (NavBar) が有効だと、待ち時間が長いネットワークでクライアントのパフォーマンスが低下する可能性があります。

ガイダンス

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

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

関連項目

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