<?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>Lab-01 &#187; Desenvolvimento</title>
	<atom:link href="http://www.blog.mayckxavier.com/category/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.mayckxavier.com</link>
	<description></description>
	<lastBuildDate>Sun, 02 Oct 2011 15:04:59 +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>Como o Ajax funciona na prática</title>
		<link>http://www.blog.mayckxavier.com/2011/09/como-o-ajax-funciona-na-pratica/</link>
		<comments>http://www.blog.mayckxavier.com/2011/09/como-o-ajax-funciona-na-pratica/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 15:11:46 +0000</pubDate>
		<dc:creator>Mayck Xavier</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blog.mayckxavier.com/?p=254</guid>
		<description><![CDATA[bb_keywords = "ajax, javascript, web, php"; bb_bid = "654420"; bb_lang = "pt-BR"; bb_name = "custom";bb_limit = "7";bb_format = "bbc"; Muito se falou (e se fala) por aí sobre Ajax. Há uns anos atrás isso era a sensação do momento. Programadores que trabalhavam com Ajax eram mais valorizados não pelas vantagens no uso do Ajax, mas [...]]]></description>
			<content:encoded><![CDATA[<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "ajax, javascript, web, php";
            bb_bid  = "654420";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end --><p>Muito se falou (e se fala) por aí sobre Ajax. Há uns anos atrás isso era a sensação do momento. Programadores que trabalhavam com Ajax eram mais valorizados não pelas vantagens no uso do Ajax, mas pelo fato de ser &#8220;mais bonito&#8221;.<br />
Depois de algum tempo começaram a aparecer algumas bibliotecas em Javascript que implementam Ajax de uma forma simples.<br />
O primeiro nome que ouvi foi o do Prototype, mas só fui realmente trabalhar com uma biblioteca dessas algum tempo depois quando entrei pra <a class="bbli" href="http://sledge.boo-box.com/list/page/TGludXhfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI182NTQ0MjA=-56" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/TGludXhfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI182NTQ0MjA=-56?referer=');">Linux<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> Solutions.<br />
Meu primeiro encontro foi com o jQuery e tanto ele quanto eu ainda estavamos engatinhando no mundo do desenvolvimento. Nessa época eu era basicamente o desenvolvedor frontend da empresa. Eu só gostava de CSS, tinha medo do <a class="bbli" href="http://sledge.boo-box.com/list/page/SmF2YXNjcmlwdF8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzY1NDQyMA==-64" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/SmF2YXNjcmlwdF8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzY1NDQyMA==-64?referer=');">Javascript<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> e estava cansado de escrever Html, e queria programar em <a class="bbli" href="http://sledge.boo-box.com/list/page/UGhwXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfNjU0NDIw-52" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/UGhwXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfNjU0NDIw-52?referer=');">Php<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>.<br />
Precisávamos trabalhar com um sistema sem recarregamento de páginas pelo fato de o mesmo fazer muitas requisições ao banco de dados em várias partes da interface, então seria bastante chato fazer no braço tendo em vista de todos os tutoriais da época só mostravam como fazer, mas não tinham uma descrição decente de como funcionava. Infelizmente, pra muitas empresas esse é o mercado hoje. Os gerentes só dizem &#8220;Faça! Deixe pra aprender depois!&#8221; e hoje temos vários profissionais que se você tirar o atalho do Internet Explorer do Desktop ele vai parar de trabalhar dizendo que a internet caiu. Assuntos polêmicos à parte, mas isso é bastante chato pois quem sabe como algo funciona pode questionar e adaptar a ferramenta ao trabalho.</p>
<p><strong>Como funciona uma requisição Ajax?</strong></p>
<p>O nome &#8220;Ajax&#8221; já não rola mais hoje em dia. Continuamos chamando de Ajax, mas pelo significado da sigla (Asynchronous Javascript and XML ou Javascript e Xml Assíncronos), não tem mais sentido. De qualquer modo, uma requisição Ajax funciona do seguinte modo:</p>
<p>Sua página inteira já foi carregada e, ao clicar num link ou fazer qualquer requisição, um usuário vê a página toda carregar novamente para a home do site sumir e aparecer um formulário de contato onde antes havia o texto inicial do site. Utilizando Ajax, você pode mandar o navegador carregar apenas o formulário de contato no lugar do texto inicial.<br />
-Putz! Mas eu vou ter mais trabalho pra fazer isso!</p>
<p>Teoricamente sim, mas se a página tem uma ou mais partes do conteúdo que se repetem você pode trabalhar com os includes ou imports da sua linguagem de programação preferida e no fim ter menos trabalho. Em compensação à codificação extra, ao invés de o usuário carregar novamente a página inteira apenas a parte relevante. Com isso você ganha velocidade de carregamento na sua página e diminuição de carga na sua banda.<br />
Web sites com <a class="bbli" href="http://sledge.boo-box.com/list/page/QWpheF8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzY1NDQyMA==-56" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/QWpheF8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzY1NDQyMA==-56?referer=');">Ajax<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> se tornam mais fluidos e tem a sensação suave de carregamento de páginas. Imagine você utilizando seu sistema operacional e a cada janela que abrir, a tela ficar preta e só aparecer tudo de volta quando a janela se abrir? Seria medonho.<br />
<strong>Mais informações:</strong><br />
<a href="http://www.w3schools.com/ajax/default.asp" onclick="pageTracker._trackPageview('/outgoing/www.w3schools.com/ajax/default.asp?referer=');"> http://www.w3schools.com/ajax/default.asp</a><br />
<a href="http://en.wikipedia.org/wiki/Ajax_(programming)" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Ajax_programming?referer=');"> http://en.wikipedia.org/wiki/Ajax_(programming)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.mayckxavier.com/2011/09/como-o-ajax-funciona-na-pratica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparando datas com Javascript</title>
		<link>http://www.blog.mayckxavier.com/2010/10/comparando-datas-com-javascript/</link>
		<comments>http://www.blog.mayckxavier.com/2010/10/comparando-datas-com-javascript/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 05:04:44 +0000</pubDate>
		<dc:creator>Mayck Xavier</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.blog.mayckxavier.com/?p=202</guid>
		<description><![CDATA[bb_keywords = "javascript,jquery, algoritmos"; bb_bid = "654420"; bb_lang = "pt-BR"; bb_name = "custom";bb_limit = "7";bb_format = "bbc"; Tentando voltar com o jejum de bastante tempo aqui no blog. Tentarei potar mais vezes, mas quanto mais o tempo passa, menos tempo me resta rs. Hoje estava com um problema para fazer um relatório de um ERP [...]]]></description>
			<content:encoded><![CDATA[<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "javascript,jquery, algoritmos";
            bb_bid  = "654420";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_limit = "7";bb_format = "bbc";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end --><p>Tentando voltar com o jejum de bastante tempo aqui no blog. Tentarei potar mais vezes, mas quanto mais o tempo passa, menos tempo me resta rs.</p>
<p>Hoje estava com um problema para fazer um relatório de um <a class="bbli" href="http://sledge.boo-box.com/list/page/RVJQXyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNfMjE3NjA2-52" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/RVJQXyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNfMjE3NjA2-52?referer=');">ERP<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> que estou fazendo para a loja de <a class="bbli" href="http://sledge.boo-box.com/list/page/bWF0ZXJpYWwrZWwlRTl0cmljb18jI19ib3hfIyNfdGFnZ2luZy10b29sLXdwXyMjXzIxNzYwNg==-76" onclick="pageTracker._trackPageview('/outgoing/sledge.boo-box.com/list/page/bWF0ZXJpYWwrZWwlRTl0cmljb18jI19ib3hfIyNfdGFnZ2luZy10b29sLXdwXyMjXzIxNzYwNg==-76?referer=');">material elétrico<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> do meu pai. O problema é simples. Será feito um relatório de lançamentos financeiros com data inicial e data final, porém a data inicial não poderia ser maior que a data final. Óbvio.</p>
<p>O formulário é basicamente o seguinte:</p>
<pre class="html">
<span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;data_inicial&quot;</span>&gt;</span>Data Inicial<span class="htmlOtherTag">&lt;/label&gt;</span>
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;text&quot;</span> name=<span class="htmlAttributeValue">&quot;data_inicial&quot;</span> value=<span class="htmlAttributeValue">&quot;&quot;</span> id=<span class="htmlAttributeValue">&quot;data_inicial&quot;</span> readonly=<span class="htmlAttributeValue">&quot;readonly&quot;</span> /&gt;</span>
<span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;data_final&quot;</span>&gt;</span>Data Final<span class="htmlOtherTag">&lt;/label&gt;</span>
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;text&quot;</span> name=<span class="htmlAttributeValue">&quot;data_final&quot;</span> value=<span class="htmlAttributeValue">&quot;&quot;</span> id=<span class="htmlAttributeValue">&quot;data_final&quot;</span> readonly=<span class="htmlAttributeValue">&quot;readonly&quot;</span> /&gt;</span>
<span class="htmlOtherTag">&lt;label&gt;</span>Tipo<span class="htmlOtherTag">&lt;/label&gt;</span>
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;radio&quot;</span> name=<span class="htmlAttributeValue">&quot;tipo&quot;</span> value=<span class="htmlAttributeValue">&quot;todos&quot;</span> /&gt;</span>Todos
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;radio&quot;</span> name=<span class="htmlAttributeValue">&quot;tipo&quot;</span> value=<span class="htmlAttributeValue">&quot;credito&quot;</span> /&gt;</span>Crédito
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;radio&quot;</span> name=<span class="htmlAttributeValue">&quot;tipo&quot;</span> value=<span class="htmlAttributeValue">&quot;debito&quot;</span> /&gt;</span>Débito
<span class="htmlOtherTag">&lt;label for=<span class="htmlAttributeValue">&quot;descricao&quot;</span>&gt;</span>Descrição<span class="htmlOtherTag">&lt;/label&gt;</span>
	<span class="htmlFormTag">&lt;input type=<span class="htmlAttributeValue">&quot;text&quot;</span> name=<span class="htmlAttributeValue">&quot;descricao&quot;</span> value=<span class="htmlAttributeValue">&quot;&quot;</span> id=<span class="htmlAttributeValue">&quot;descricao&quot;</span> /&gt;</span>
<span class="htmlFormTag">&lt;button name=<span class="htmlAttributeValue">&quot;&quot;</span> type=<span class="htmlAttributeValue">&quot;button&quot;</span> id=<span class="htmlAttributeValue">&quot;consultar_btn&quot;</span> &gt;</span>Consultar<span class="htmlFormTag">&lt;/button&gt;</span>
</pre>
<p>O necessário agora é pegar as datas e fazer a verificação. O Javascript tem um objeto chamado &#8220;Date&#8221; que nos permite fazer operações com datas. Ele é simples de se trabalhar, mas é preciso escrever um pouco de código.<br />
O meu código abaixo é utilizando o JQuery, mas você pode fazer com Javascript puro se quiser.</p>
<pre class="php">
$<span class="phpOperator">(</span><span class="phpString">'#consultar_btn'</span><span class="phpOperator">)</span>.click<span class="phpOperator">(</span><span class="phpFunctionKeyword">function</span><span class="phpOperator">(</span><span class="phpOperator">)</span><span class="phpOperator">{</span>
<span class="phpKeyword">	var </span>dia_inicial <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_inicial'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">0</span>, <span class="phpNumber">2</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>mes_inicial <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_inicial'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">3</span>, <span class="phpNumber">5</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>ano_inicial <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_inicial'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">6</span>, 10<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>data_inicial <span class="phpOperator">=</span><span class="phpKeyword"> new </span>Date<span class="phpOperator">(</span>ano_inicial,mes_inicial,dia_inicial<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>dia_final <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_final'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">0</span>, <span class="phpNumber">2</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>mes_final <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_final'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">3</span>, <span class="phpNumber">5</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>ano_final <span class="phpOperator">=</span> $<span class="phpOperator">(</span><span class="phpString">'#data_final'</span><span class="phpOperator">)</span>.val<span class="phpOperator">(</span><span class="phpOperator">)</span>.slice<span class="phpOperator">(</span><span class="phpNumber">6</span>, 10<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	var </span>data_final <span class="phpOperator">=</span><span class="phpKeyword"> new </span>Date<span class="phpOperator">(</span>ano_final,mes_final,dia_final<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpKeyword">	if<span class="phpOperator">(</span></span>data_inicial <span class="phpOperator">&gt;</span> data_final<span class="phpOperator">)</span><span class="phpOperator">{</span>
		alert<span class="phpOperator">(</span><span class="phpString">'A data inicial não pode ser superior à data<span class="phpKeyword"> final<span class="phpOperator">.</span></span>'</span><span class="phpOperator">)</span><span class="phpText">;</span>
	<span class="phpOperator">}</span>
<span class="phpKeyword">	else<span class="phpOperator">{</span></span>
		<span class="phpComment">//Faça aqui o que quiser <span class="phpOperator">=</span><span class="phpOperator">)</span>
</span>	<span class="phpOperator">}</span>
<span class="phpOperator">}</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>O que fiz foi basicamente pegar todas as partes da data inicial e data final separados (dia, mês e ano).  Após isso, eu criei dois objetos do tipo Date. Como construtor, o objeto Date pode receber os parâmetros ano, mes e dia nessa mesma ordem. À partir desse momento eu pude fazer a comparação entre a data inicial e a data final. Simples assim.<br />
Explicando o método slice:<br />
O método &#8220;slice&#8221; literalmente corta uma string. Ele recebe dois parâmetros. O primeiro é onde você vai começar a cortar a string (sempre iniciando com zero) e o segundo é até onde vai cortar. O método vai retornar o pedaço da string que foi cortado. Faça alguns testes e se divirta =)</p>
<p>É isso aí pessoal. Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.mayckxavier.com/2010/10/comparando-datas-com-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

