Invocação de uma função ComponenteSe você chamar uma função do componente usando a tag CFINVOKE, ColdFusion cria uma instância desse componente e chama a função com o nome no atributo do método. Em essência, ColdFusion instancia um objeto da classe do componente, mas o nome desse objeto é invisível para você. (It's internamente referenciado pelo ColdFusion Server.) Se você usar CFINVOKE chamar três funções de um componente do ColdFusion em um único modelo, como mostrado no código, ColdFusion Server cria três instâncias separadas do que a componente para dar o que você quer, e isso é não muito eficiente.
A maneira correta de chamar funções de um componente várias vezes em um único modelo é separado instanciar um objeto com um nome formal e, em seguida, chamar as funções do que um exemplo, como você precisa deles. O código mostra que este princípio em ação. Observe que o atributo componente das referências tag CFINVOKE uma instância do componente em vez do próprio componente. Você cria uma única instância do componente da Empresa que persiste, enquanto a solicitação da página atual dura, então você simplesmente chamar as funções do que um exemplo quantas vezes você precisa. Após a solicitação da página atual termina, ColdFusion automaticamente destrói a instância que você cria. (Na parte seguinte, você aprende como fazer suas instâncias componente viver mais tempo.) Usando a tag CFOBJECT não é a única forma de instanciar um objeto. A função CreateObject () retorna um objeto tão bem. Os três seguintes linhas de código, por exemplo, produzem os mesmos resultados:
Da mesma forma, usando CFINVOKE não é a única maneira de chamar uma função do componente. Depois de criar uma instância de um componente, você pode chamar seus métodos simples, usando a notação de ponto. O código, por exemplo, retorna a lista de empresas produzidos pelo ListCompanies função para uma variável chamada listOfCompanies.
Na verdade, o código é provavelmente a mais popular forma de trabalhar com funções de componente para desenvolvedores ColdFusion que são versados nas linguagens orientadas a objeto, como a sintaxe é muito perto da forma que Java e C + + instanciar objetos e chamar seus métodos. Você pode acessar diretamente as funções dos componentes através de formulários e URLs, mas os resultados são basicamente inútil. Em vez de definir um valor de retorno para passar da sua função para chamar a função que chama-lo, você deve empurrar conteúdo a ser apresentado diretamente para fora do corpo da função, como mostrado no código.
Este tipo de codificação é um assunto complicado, pessoal. Não faça isso. O poder real de conteúdos de produção funções, quer sejam locais a um modelo ou encapsulados dentro de um componente, vem retornando conteúdo contido em uma variável complexa de um tipo específico de dados e em seguida, incorporar o conteúdo com o código de apresentação. Separando lógica de apresentação (e, por extensão, os dados de apresentação) deve ser seu mantra. Se você absolutamente deve criar uma função que o conteúdo diretamente saídas, remova o atributo da tag ReturnType cffunction e adicionar Output = "Sim". Nunca ter tanto um tipo de retorno e saída direta na mesma função. O atributo de saída realmente tem os seguintes três estados: Output = "Yes" trata toda a função como se estivesse dentro de um par de tags CFOUTPUT. Output = "Não" trata toda a função como se estivesse dentro de um par de tags CFSILENT. Eliminar o atributo de saída inteiramente permite tags CFOUTPUT explícita dentro da função de vazamento de saída para o chamador. Nós não fomos explícitos sobre o atributo de saída ainda porque este é um artigo de aprendizagem, e que queremos eliminar o código estranho tanto quanto possível, para que você possa focar sua concentração sobre temas específicos. Nas partes anteriores deste artigo, você aprenderá a criar um nomeado instância de um componente, você descobrir mais sobre os conceitos básicos das propriedades em uma instância do componente Este âmbito, e você aprende as diferenças entre os métodos de classe e métodos de instância. Agora, para colocar essas teorias em ação! A instância do componente que você cria no Código persiste apenas enquanto a solicitação de página e, em seguida, ColdFusion Server automaticamente destrói. Se você quiser trabalhar com um componente persistente após um pedido única página, você simplesmente deve criá-lo em um escopo persistente que vive mais de um pedido, como mostrado no código.
Agora, este exemplo persiste enquanto a sessão do usuário faz, o que significa que suas propriedades, também. Isto significa que você pode executar uma ColdFusion modelo que cria uma instância do componente de Empresas, vá tomar uma xícara de café, de executar uma segunda ColdFusion modelo que chama uma função desse componente, vá colocar um lance no eBay, ColdFusion executar um terceiro modelo que chama outra função desse componente, e assim por diante, até que você pausa mais do que o seu tempo limite de sessão e permite que a instância seja destruída. É por isso que nos referimos a Empresa como um componente de longa duração persistente. Componentes também podem ser persistentes no âmbito de aplicação, bem. Basta lembrar que todos os usuários do seu aplicativo usa a mesma instância do seu componente, de modo bloqueio torna-se ainda mais críticos e gargalos de desempenho potencialmente se tornar mais uma preocupação se o componente manipula propriedades em seu campo de aplicação. Apostamos que, agora, você ' pensar novamente, "eu sou o meu pedido de agrupamento, o que significa que eu não utilizar variáveis de sessão em qualquer lugar, por isso estou indo para manter minha instância de componente, serialização com WDDX e armazená-lo no âmbito do cliente." Isso é uma inteligente idéia, mas, infelizmente, ele não funciona. Se você serializar uma instância do componente, as propriedades no âmbito O presente serializar tudo bem, mas você perde todas as suas funções, assim por diante desserialização, tudo que você receber de volta são as propriedades. um artigo submetido por Peter Andrews Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "Invocar um componente de Função" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 175 users browsing the articles directory |
|
|