<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JulioGreff.net &#187; fila</title>
	<atom:link href="http://juliogreff.net/tag/fila/feed/" rel="self" type="application/rss+xml" />
	<link>http://juliogreff.net</link>
	<description>A mesma web, um novo estilo de desenvolvimento</description>
	<lastBuildDate>Sat, 07 May 2011 17:07:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mootools &#8211; Chain</title>
		<link>http://juliogreff.net/mootools-chain/</link>
		<comments>http://juliogreff.net/mootools-chain/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 16:16:13 +0000</pubDate>
		<dc:creator>Julio Greff</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[bibliotecas]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[fila]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[poo]]></category>

		<guid isPermaLink="false">http://www.juliogreff.blog.br/mootools-chain/</guid>
		<description><![CDATA[Executar funções em determinada ordem, como filas de requisições, através de uma classe. Resumindo, é isso o que faz a classe Chain, da Mootools, e nesse post veremos como funciona e também como implementar essa funcionalidade em suas próprias classes. Seqüenciando Funções Para criar uma seqüência de funções, basta instanciar a classe Chain. Após isso, [...]

<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-eventos/' rel='bookmark' title='Permanent Link: Mootools &#8211; Eventos'>Mootools &#8211; Eventos</a></li>
<li><a href='http://juliogreff.net/mootools-classes/' rel='bookmark' title='Permanent Link: Mootools &#8211; Classes'>Mootools &#8211; Classes</a></li>
<li><a href='http://juliogreff.net/mootools-options/' rel='bookmark' title='Permanent Link: Mootools &#8211; Options'>Mootools &#8211; Options</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
<li><a href='http://juliogreff.net/funcoes-em-diferentes-escopos/' rel='bookmark' title='Permanent Link: Funções em Diferentes Escopos'>Funções em Diferentes Escopos</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="left"><img src="http://juliogreff.net/wp-uploads/chain.jpg" title="Cookies!" alt="Cookies!" /></p>
<p>Executar funções em determinada ordem, como filas de requisições, através de uma classe. Resumindo, é isso o que faz a classe <code>Chain</code>, da <a href="http://www.mootools.net/" rel="external" title="Mootools Library">Mootools</a>, e nesse post veremos como funciona e também como implementar essa funcionalidade em suas próprias classes.</p>
<h3>Seqüenciando Funções</h3>
<p>Para criar uma seqüência de funções, basta instanciar a classe <code>Chain</code>. Após isso, já podemos adicionar funções à seqüência para podermos chamá-la quando necessário.</p>
<p>Adicionamos funções à uma seqüência através do método <code>Chain.chain</code>, passando como parâmetro a função a ser adicionada à seqüência.</p>
<pre><code>var myChain = new Chain();
myChain.chain(function() {
	alert("Primeira Função");
});
myChain.chain(function() {
	alert("Segunda Função");
});</code></pre>
<p>O método <code>Chain.callChain</code> é quem chama a próxima função da seqüência. Quando o método é executado, a função é executada e então removida da seqüência.</p>
<pre><code>myChain.callChain(); // "Primeira Função"
myChain.callChain(); // "Segunda Função"</code></pre>
<p>Caso necessário, podemos limpar todas as funções de nossa seqüência através do método <code>Chain.clearChain</code>.</p>
<h3>Implementando em Classes</h3>
<p>Obviamente, <code>Chain</code> é muito mais útil quando usado dentro de uma função. Classes não deixam de ser uma função, e possuem muito mais poder. É nelas onde a utilização de <code>Chain</code> acontece na própria Mootools.</p>
<p>Após a implementação de <code>Chain</code> em alguma classe, podemos utilizar seus métodos.</p>
<pre><code>var myClass = new Class({
	"initialize": function() {},
	"execute": function() {
		this.callChain();
		if(this.chains.length &gt; 0) this.execute();
	}
});
myClass.implement(new Chain);
var myChain = new myClass();
myChain.chain(function() {
	alert("Primeira Função");
});
myChain.chain(function() {
	alert("Segunda Função");
});
myChain.execute();
</code></pre>
<p>Como no exemplo acima, também podemos utilizar a variável <code>Chain.chains</code>, que é o array que contém todas as funções na seqüência. Não é necessário se preocupar muito com ele, já que a classe faz todo o necessário. O utilizei acima somente para não criar um loop infinito.</p>
<p>Essa classe também já é implementada na utilização de efeitos, para encadear vários efeitos subseqüentes. Também muito útil para se criar uma fila de requisições Ajax, ou algo do gênero. Vou ficando por aqui, até!</p>


<h3>Posts Relacionados</h3><ul><li><a href='http://juliogreff.net/mootools-eventos/' rel='bookmark' title='Permanent Link: Mootools &#8211; Eventos'>Mootools &#8211; Eventos</a></li>
<li><a href='http://juliogreff.net/mootools-classes/' rel='bookmark' title='Permanent Link: Mootools &#8211; Classes'>Mootools &#8211; Classes</a></li>
<li><a href='http://juliogreff.net/mootools-options/' rel='bookmark' title='Permanent Link: Mootools &#8211; Options'>Mootools &#8211; Options</a></li>
<li><a href='http://juliogreff.net/ajax-com-a-mootools/' rel='bookmark' title='Permanent Link: Ajax com a Mootools'>Ajax com a Mootools</a></li>
<li><a href='http://juliogreff.net/funcoes-em-diferentes-escopos/' rel='bookmark' title='Permanent Link: Funções em Diferentes Escopos'>Funções em Diferentes Escopos</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://juliogreff.net/mootools-chain/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

