Usare JavaScript con Customer Engagement (on-premises)

Dynamics 365 for Customer Engagement offre molte opportunità per usare JavaScript. Tutto JavaScript usato in Dynamics 365 Customer Engagement (on-premises) viene aggiunto creando risorse Web JavaScript. Questo argomento contiene informazioni per gli sviluppatori che usano JavaScript e include collegamenti ad argomenti pertinenti nei servizi Web Dynamics 365 Customer Engagement e in altre origini.

Aree in cui è possibile usare JavaScript in Dynamics 365 Customer Engagement (on-premises)

È possibile usare JavaScript per eseguire azioni negli script del modulo, nei comandi della barra dei comandi (barra multifunzione) e nelle risorse Web.

Script dei moduli

L'uso più comune di JavaScript in Dynamics 365 Customer Engagement (on-premises) consiste nell'aggiungere funzioni come gestori eventi per gli eventi del modulo di entità. Per altre informazioni, vedi Script client in Customer Engagement con JavaScript.

Comandi (barra multifunzione) nella barra dei comandi

Quando personalizzi la barra dei comandi di Dynamics 365 Customer Engagement (on-premises), puoi configurare i comandi per i controlli aggiunti. Questi comandi contengono regole che verificano se il controllo è abilitato e quale azione viene eseguita quando viene utilizzato il controllo. Per altre informazioni, vedi Personalizzare i comandi e la barra multifunzione.

Risorse Web

Dynamics 365 Customer Engagement (on-premises) fornisce un'entità di proprietà dell'organizzazione che archivia una rappresentazione binaria di un file a cui è possibile accedere usando un URL. Questo file è denominato risorsa Web. Esistono diversi tipi di risorse Web. Una risorsa Web che rappresenta una libreria JavaScript è denominata risorsa Web JavaScript. È possibile usare una risorsa Web (HTML) per fornire un'interfaccia utente con librerie JavaScript incluse esattamente come per i file in un server Web. Poiché questi file fanno parte di Dynamics 365 Customer Engagement (on-premises), gli utenti che vi accedono sono già autenticati. Pertanto, è possibile usare i servizi Web Dynamics 365 Customer Engagement (on-premises) senza dover scrivere codice per autenticare l'utente. Per altre informazioni, vedi Risorse Web per Dynamics 365 Customer Engagement e Usare i dati di Dynamics 365 Customer Engagement utilizzando le risorse Web.

Uso di jQuery

Usare jQuery con risorse Web HTML
È consigliabile usare jQuery insieme alle risorse Web HTML per fornire interfacce utente poiché è un'eccellente raccolta tra browser.

Con le risorse Web HTML è possibile controllare le raccolte presenti e non esiste alcuna restrizione per la modifica del DOM. È possibile usare jQuery all'interno delle risorse Web HTML.

Annotazioni

Se il riferimento allo script a ClientGlobalContext.js.aspx viene inserito dopo il riferimento jQuery, gli script ClientGlobalContext.js.aspx sovrascriveranno la versione precedentemente caricata di jQuery. Per evitare questo problema, posiziona il riferimento allo script ClientGlobalContext.js.aspx prima di qualsiasi altro riferimento di script nella risorsa Web.

Scrittura di JavaScript per più browser

Poiché non sai quale browser sarà in uso, dovresti assicurarti che tutti gli script usati funzionino con tutti i browser supportati. La maggior parte delle differenze significative tra Internet Explorer e altri browser ha a che fare con la manipolazione DOM XML e HTML. Poiché la manipolazione DOM HTML non è supportata, se la logica dello script esegue solo azioni supportate e usa l'API client, le modifiche necessarie per supportare altri browser potrebbero essere ridotte.

Una raccolta tra browser come jQuery è una buona soluzione per lo sviluppo di risorse Web, ma non deve essere necessaria per gli script dei moduli o i comandi della barra multifunzione. Altre informazioni: Evitare di usare jQuery per gli script del modulo

Procedure consigliate per la programmazione JavaScript

Le sezioni seguenti descrivono le procedure consigliate quando si usa JavaScript con Dynamics 365 Customer Engagement (on-premises).

Evita di utilizzare metodi non supportati

Su Internet è possibile trovare molti esempi o suggerimenti che descrivono l'uso di metodi non supportati. Questi possono includere l'uso della funzione interna non documentata per i controlli pagina. Questi metodi possono funzionare, ma poiché non sono supportati, non è possibile aspettarsi che continueranno a funzionare nelle versioni future di Dynamics 365 Customer Engagement (on-premises).

Usare una raccolta JavaScript tra browser per le interfacce utente delle risorse Web HTML

Una raccolta JavaScript tra browser, ad esempio jQuery, offre molti vantaggi quando si sviluppano risorse Web HTML che devono supportare più browser. Le raccolte JavaScript come jQuery offrono un'esperienza di sviluppo unificata per tutti i browser supportati da Dynamics 365 Customer Engagement (on-premises). Queste funzionalità sono appropriate quando si usano risorse Web HTML per fornire interfacce utente. Le raccolte JavaScript come jQuery offrono modi coerenti per interagire con il modello DOM (Document Object Model).

Non usare jQuery per script di modulo o comandi

Non consigliamo o supportiamo l'uso di jQuery per qualsiasi pagina all'interno dell'applicazione. Sono inclusi gli script dei moduli e i comandi della barra multifunzione. Altre informazioni: Uso di jQuery.

Riconoscere le limitazioni per le raccolte della rete per la distribuzione di contenuti (RETE CDN)

Le librerie JavaScript della rete per la distribuzione di contenuti (CDN) offrono molti vantaggi per i siti Web pubblici. Poiché queste raccolte sono ospitate su Internet, non è necessario creare risorse Web che contengono il contenuto delle librerie. Per Dynamics 365 Customer Engagement (on-premises) è consigliabile considerare i problemi seguenti prima di usare una raccolta JavaScript della rete CDN.

  • Gli utenti del client Dynamics 365 for Microsoft Office Outlook con Accesso offline hanno la possibilità di lavorare senza connessione Internet mentre funzionano offline. Se dipendi da una connessione Internet per le raccolte JavaScript, il codice avrà esito negativo.

  • Alcune organizzazioni limiteranno l'accesso a Internet per i dipendenti. A meno che non configurino la rete per consentire l'accesso ai siti di raccolta della rete CDN, il codice potrebbe non riuscire per tali organizzazioni.

    L'alternativa all'uso delle raccolte della rete CDN consiste nel creare una risorsa Web script (JavaScript) con il contenuto della raccolta. Poiché le risorse Web sono entità di proprietà dell'organizzazione, verranno sincronizzate quando un utente di Dynamics 365 for Outlook con Accesso offline diventa offline. Poiché queste risorse Web diventano ora parte dell'applicazione, non verranno bloccate se un'organizzazione limita l'accesso a Internet.

Usa il rilevamento delle funzionalità durante la scrittura di funzioni per più browser

Anche quando utilizzi una raccolta tra browser come jQuery, devi essere molto consapevole delle differenze tra browser. In genere è possibile rilevare il browser usato eseguendo una query sulla proprietà navigator.useragent. Questa operazione è denominata rilevamento del browser. Il rilevamento del browser non è una buona strategia per la maggior parte dei casi perché non può prendere in considerazione le funzionalità più recenti di un browser. Inoltre, alcuni browser offrono la possibilità di modificare la proprietà navigation.useragent in modo che sembrino essere un browser diverso.

Il rilevamento delle funzionalità è l'approccio consigliato. Rilevando quali funzionalità sono disponibili, è possibile creare percorsi di codice per i browser supportati senza conoscere esattamente quale browser viene usato. Per altre informazioni sul rilevamento delle funzionalità, vedi Come rilevare le funzionalità anziché i browser.

Non accedere al DOM

Gli sviluppatori JavaScript vengono usati per interagire con gli elementi DOM (Document Object Model) nel codice. È possibile usare il metodo window.getElementById o la raccolta jQuery. È possibile usare queste tecniche nelle risorse Web HTML, ma non sono supportate per accedere agli elementi nelle pagine dell'applicazione o nei moduli di entità di Dynamics 365 Customer Engagement (on-premises). L'accesso agli elementi del modulo di entità viene invece esposto tramite il modello a oggetti dell'API client. Il team di sviluppo di Dynamics 365 Customer Engagement (on-premises) si riserva il diritto di modificare la modalità di composizione delle pagine, inclusi i valori per gli elementi ID, quindi l'uso del modello a oggetti dell'API client protegge il codice dalle modifiche apportate alle pagine.

Definire nomi univoci per le funzioni JavaScript

Quando sei l'unico sviluppatore per una pagina HTML, puoi gestire facilmente i nomi delle funzioni JavaScript usate. In Dynamics 365 Customer Engagement (on-premises), altre soluzioni possono aggiungere funzioni JavaScript alla pagina in cui viene usata la funzione.

Se due funzioni JavaScript in una pagina hanno lo stesso nome, la prima funzione definita viene sovrascritta dal secondo. Per questo motivo, assicurati di definire nomi univoci per le funzioni JavaScript. Per altre informazioni, vedi Script client in Customer Engagement con JavaScript.

Usare metodi di accesso ai dati asincroni

Quando accedi ai dati usando i servizi Web Dynamics 365 Customer Engagement (on-premises), usa sempre un XMLHttpRequest configurato per l'esecuzione asincrona. Il motivo è che il browser opera su un singolo thread. Se il thread viene usato per eseguire un processo a esecuzione prolungata in modo sincrono, il browser smetterà di rispondere.

Annotazioni

Le XMLHttpRequests sincrone sono deprecate nel thread principale del browser a causa degli effetti negativi dell'esperienza dell'utente finale. Alcuni browser ora forniscono un avviso quando vengono rilevate. Se i browser implementano la specifica in un determinato momento in futuro, verrà generata un'eccezione InvalidAccessError. Altre informazioni: https://www.w3.org/TR/XMLHttpRequest/#synchronous-flag e https://xhr.spec.whatwg.org/#the-open()-method

Vedere anche

Scrivere estensioni dell'applicazione client
Usare i dati di Customer Engagement utilizzando le risorse Web
Creazione di script client in Customer Engagement (on-premises) utilizzando JavaScript
Personalizzare la barra multifunzione per Dynamics 365 Customer Engagement (on-premises)
Risorse Web per Dynamics 365 Customer Engagement (on-premises)

Comprendere il modello a oggetto dell'API client