ベスト プラクティス: モデル駆動型アプリにおけるクライアント スクリプト
以下は、モデル駆動型アプリの JavaScript コードを書く際に考慮できるヒントの一部です。
一意のJavaScript 関数名を定義する
JavaScript ライブラリ内で使用する関数を記述する場合は、その関数を他の JavaScript ライブラリと共にフォームに読み込むことができます。 指定した関数と同じ名前の関数が他のライブラリに含まれている場合は、そのページに対してどちらの関数を読み込むかが定義されます。 設計した関数が他のライブラリの関数によって上書きされないようにするには、設計した関数に一意の名前を付ける必要があります。 次のストラテジーを使用できます:
一意な関数プレフィックス: 次の例に示すように、一意の命名規則を含む標準の構文で一貫性のある名前を使用して各関数を定義します。
function MyUniqueName_performMyAction() { // Code to perform your action. }名前空間のあるライブラリ名 : ベスト プラクティスとして、関数が他のライブラリの関数に上書きされないように、常に名前空間のある JavaScript ライブラリを作成する必要があります。 詳細情報 : 初めて JavaScript を記述する
var Sdk = window.Sdk || {}; (function () { this.formOnLoad = function () { // Code to perform your actions. } this.attributeOnChange = function () { // Code to perform your actions. } this.formOnSave = function () { // Display an alert dialog } }). call(Sdk);これにより、関数を使用するときにフル ネームを指定できます。 次の例はこのことを示しています。
Sdk.attributeOnChange();
サポートされないメソッドを使用しない
インターネットでは、サポートされていないメソッドを使用するさまざまな例や提案があります。 これらは、ページ コントロールに文書化されていない内部関数を活用するものもあります。 これらのメソッドは機能するかもしれませんが、サポートされていないため、モデル駆動型アプリの将来のバージョンでも引き続き使用できるとは期待できません。
フォーム スクリプトに jQuery の使用を避ける
フォーム スクリプトやリボン コマンドで jQuery を使用しないでください。 jQuery が提供する最大の益は、DOM のクロスブラウザー操作が簡単になることです。 これにより、フォーム スクリプトとリボン コマンドは明示的にサポートされていません。 スクリプトを制限して、Xrm オブジェクト モデルで使用可能なオブジェクトおよびメソッドを使用します。 プラットフォームで使用されている jQuery のバージョンや、スクリプトが実行されているページのコンポーネント間で使用されている jQuery のバージョンが異なる場合、競合が発生して問題が発生する可能性があります。 プラットフォームやその他のコンポーネントはいつでもバージョンを変更する可能性があるため、jQuery を使用するといつでも問題が発生する可能性があります。
リスクがあるにもかかわらず jQuery の使用を検討している場合は、次のことを考慮してください。
- 最良のパフォーマンスを得るには、必要でない場合はページで jQuery をロードしないでください。
- モデル駆動型アプリ Web サービスに対して要求を実行するために $.ajax を使用することはサポートされていますが、代替手段があります。 $.ajax を使用する代替策は、ブラウザーの XMLHttpRequest オブジェクトを直接使用することです。 jQuery $.ajax メソッドは、このオブジェクトのラッパーのみです。 ネイティブ XMLHttpRequest オブジェクトを直接使用する場合、jQuery を読み込む必要はありません。
- ページに読み込まれる jQuery の各バージョンは、違うバージョンの場合があります。 jQuery のさまざまなバージョンはさまざまな動作をするので、jQuery の複数バージョンが同じページで読み込まれるときは、問題が発生する可能性があります。 これはこの問題を軽減する手法ですが、jQuery ライブラリおよび jQuery に依存する他のライブラリの編集によって異なります。
複数のブラウザーで コード を記述する
モデル駆動型アプリは複数のブラウザーをサポートします。 使用するスクリプトが、対応しているすべてのブラウザで動作することを確認してください。 スクリプト ロジックがサポートされる操作だけを実行し、Xrm オブジェクト モデル を使用している場合、異なるブラウザーをサポートするために大きな変更は必要ありません。
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示