Invocare una funzione ComponenteSe si richiama una funzione di componente utilizzando il tag CFINVOKE, ColdFusion crea un'istanza di tale componente e chiama la funzione denominata in l'attributo metodo. In sostanza, ColdFusion istanzia un oggetto della classe di tale componente, ma il nome di tale oggetto è invisibile a voi. (It's internamente riferimento ColdFusion Server.) Se si utilizza CFINVOKE di chiamare tre delle funzioni di un componente ColdFusion in un singolo modello, come illustrato nel codice, ColdFusion Server crea tre istanze separate di tale componente per darti quello che vuoi, e questo è non molto efficiente.
Il modo corretto di chiamare le funzioni di un componente più volte da un singolo modello è separatamente istanziare un oggetto con un nome formale e quindi chiamare le funzioni di un caso che quando ne hai bisogno. Il codice viene illustrato questo principio in azione. Si noti che l'attributo componente dei riferimenti tag CFINVOKE un'istanza del componente piuttosto che la componente stesso. Si crea una singola istanza del componente Società che persiste per tutto il tempo, come la richiesta della pagina corrente dura, quindi basta semplicemente chiamare le funzioni di tale istanza uno tante volte quanto è necessario. Dopo la richiesta della pagina corrente finisce, ColdFusion distrugge automaticamente l'istanza che si crea. (Nella parte seguente, si impara come fare le istanze dei componenti vivono più a lungo.) Utilizzando il tag CFOBJECT non è l'unico modo per istanziare un oggetto. Il CreateObject () restituisce un oggetto così. Le seguenti tre righe di codice, per esempio, producono gli stessi risultati:
Allo stesso modo, utilizzando CFINVOKE non è l'unico modo per richiamare una funzione di componente. Dopo aver creato un'istanza di un componente, è possibile chiamare i suoi metodi mediante semplice notazione. Il codice, ad esempio, restituisce l'elenco delle società prodotto dalla ListCompanies funzione a una variabile denominata listOfCompanies.
In effetti, il codice è probabilmente il modo più comune di operare con funzioni di componente per gli sviluppatori ColdFusion che sono esperti in linguaggi orientati agli oggetti, come la sintassi è molto vicino al modo che sia Java e C + + istanziare gli oggetti e chiamare i loro metodi. È possibile accedere direttamente alle funzioni dei componenti tramite le forme e gli URL, ma i risultati sono sostanzialmente inutili. Invece di definire un valore di ritorno per passare dalla funzione per la chiamata di funzione che richiama, è necessario spingere i contenuti visualizzabili direttamente dal corpo della funzione, come illustrato nel codice.
Questo tipo di codifica è roba brutta, folks. Non farlo. La vera forza dei contenuti produttrici funzioni, siano esse locali per un modello o incapsulato all'interno di un componente, viene da tornare contenuti presenti in una variabile complessa di uno specifico tipo di dati e quindi la fusione il contenuto con il codice di presentazione. Separare la logica dalla presentazione (e, per estensione, i dati di presentazione) dovrebbe essere il tuo mantra. Se è assolutamente necessario creare una funzione che i contenuti direttamente uscite, rimuovere l'attributo ReturnType dal tag CFFUNCTION e aggiungere output = "Sì". Non hanno mai sia un tipo di ritorno e l'output diretto alla stessa funzione. L'attributo di output è in realtà i seguenti tre stati: Output = "Si" tratta l'intera funzione come se fosse all'interno di una coppia di tag cfoutput. Output = "No" considera l'intera funzione come se fosse all'interno di una coppia di CFSILENT tag. Eliminando l'attributo di output permette interamente tag cfoutput esplicita all'interno della funzione di perdita di output con il chiamante. Non ci sono state esplicite circa l'uscita attributo ancora perché questo è un articolo di apprendimento, e vogliamo eliminare il più possibile il codice estranei in modo da poter concentrare la tua concentrazione su argomenti specifici. Nelle parti precedenti del presente articolo, è imparare a creare un'istanza denominata di un componente, è conoscere le basi della proprietà ad esempio in un componente di questa portata, e si impara le differenze tra i metodi di classe e metodi di istanza. Ora, per mettere queste teorie in azione! L'istanza del componente che si crea nel codice persiste solo fintanto che la richiesta della pagina e quindi ColdFusion Server distrugge automaticamente. Se si desidera lavorare con un componente persistente passato una singola richiesta di pagina, è semplicemente necessario creare in un ambito di applicazione persistente che vive più a lungo di una richiesta, come illustrato nel codice.
Ora questo caso persiste fino a quando la sessione dell'utente non, il che significa che le sue proprietà fare, troppo. Ciò significa che è possibile eseguire uno ColdFusion modello che crea un'istanza del componente Company, andare a bere una tazza di caffè, eseguire un secondo ColdFusion modello che richiama una funzione di tale componente, vai fare un'offerta su eBay, eseguire un ColdFusion terzo modello che richiama un'altra funzione di tale componente, e così via, fino a quando si mette in pausa più lunga del tuo permesso di timeout della sessione e l'istanza viene distrutto. È per questo che ci riferiamo alla Società come una lunga vita componente persistente. Componenti possono anche essere rese persistenti nel campo di applicazione Application pure. Basta ricordare che tutti gli utenti della vostra applicazione utilizzare la stessa istanza del componente, in modo da bloccare diventa ancora più critico e colli di bottiglia delle prestazioni potenzialmente diventare più di una preoccupazione se il componente manipola le proprietà nel suo questo ambito. Scommettiamo che, adesso, si ' re il pensiero, "Sono clustering la mia domanda, il che significa che io non uso le variabili di sessione da nessuna parte, così vado a persistere la mia istanza del componente di serializzazione con WDDX e la memorizzazione nel campo di applicazione client." Questo è un intelligente idea, ma purtroppo, non funziona. Se si serializzare un'istanza del componente, le proprietà del campo di applicazione Questo serializzare bene, ma si perdono tutte le funzioni, ecc deserializzazione, tutto ciò che tornare indietro sono le proprietà. un articolo presentato da Peter Andrews Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo "Invocare un componente Function" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 508 users browsing the articles directory |
|
|