Como Carregar Conteúdo Sob Demanda Usando JQuery

3
Como carregar conteúdo sob demanda usando jQuery 30 de dezembro de 2011 por Yuri Malheiros Sites como o Facebook e o Orkut usam um efeito muito interessante de carregamento de conteúdo de acordo com a posição da barra de rolagem. O site carrega apenas uma parte dos dados e, à medida que o usuário vai descendo a barra de rolagem, o site se encarrega de pegar mais dados no servidor para exibir. O efeito é não é complicado de fazer, além de ser muito útil, pois o servidor não precisará carregar todos os dados de uma só vez. Para fazer isso, utilizaremos o JQuery. Vamos utilizar o código HTML abaixo, os estilos foram colocados direto no código apenas para fins didáticos, não façam isso. <html> <head> <title>yLog Scroll Tutorial</title> </head> <body> <div id="content" style="width:120; height:100px; overflow-y:scroll;"> <ul style="position: relative;"> <li>item 1</li> <li>item 2</li> <li>item 3</li> <li>item 4</li> <li>item 5</li> <li>item 6</li> <li>item 7</li> <li>item 8</li> <li>item 9</li> <li>item 10</li> </ul> </div> </body> </html> Ao abrir esse HTML no navegador, aparecerá uma lista de itens com uma barra de rolagem. O que queremos é que, ao rolar a barra até o fim, novos itens apareçam. Para carregar conteúdo dessa forma, usa-se AJAX, nada muito complicado, mas a maior dúvida é como saber se a barra chegou ao final. Primeiro importe o JQuery, adicione a linha abaixo entre as tags <head></head>. É uma boa prática importá-lo direto do Google. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script> Existe um evento chamado “scroll”, nome mais óbvio impossível. Vamos usá-lo para fazer algo quando a barra for rolada. Adicione esse código logo abaixo da linha que importa o JQuery. <script> $(document). ready(function() { $("#content"). scroll(function() { //fazer algo aqui }); }); </script>. Com os métodos scrollTop() e height(), é possível saber o quanto foi rolado e a altura da div, mas essa não é a altura total, ela é a altura apenas do que está sendo exibido.Para saber o tamanho total da div, é necessário usar a

description

montagem de site comobox

Transcript of Como Carregar Conteúdo Sob Demanda Usando JQuery

Como carregar contedo sob demanda usando jQuery30 de dezembro de 2011porYuri MalheirosSites como o Facebook e o Orkut usam um efeito muito interessante de carregamento de contedo de acordo com a posio da barra de rolagem.O site carrega apenas uma parte dos dados e, medida que o usurio vai descendo a barra de rolagem, o site se encarrega de pegar mais dados no servidor para exibir.O efeito no complicado de fazer, alm de ser muito til, pois o servidor no precisar carregar todos os dados de uma s vez.Para fazer isso, utilizaremos o JQuery.Vamos utilizar o cdigo HTML abaixo, os estilos foram colocados direto no cdigo apenas para fins didticos, no faam isso.

yLog Scroll Tutorial

  • item 1
  • item 2
  • item 3
  • item 4
  • item 5
  • item 6
  • item 7
  • item 8
  • item 9
  • item 10

Ao abrir esse HTML no navegador, aparecer uma lista de itens com uma barra de rolagem.O que queremos que, ao rolar a barra at o fim, novos itens apaream.Para carregar contedo dessa forma, usa-se AJAX, nada muito complicado, mas a maior dvida como saber se a barra chegou ao final.Primeiro importe o JQuery, adicione a linha abaixo entre as tags . uma boa prtica import-lo direto do Google. Existe um evento chamado scroll, nome mais bvio impossvel.Vamos us-lo para fazer algo quando a barra for rolada.Adicione esse cdigo logo abaixo da linha que importa o JQuery. $(document). ready(function() { $("#content"). scroll(function() { //fazer algo aqui }); });.Com os mtodos scrollTop() e height(), possvel saber o quanto foi rolado e a altura da div, mas essa no a altura total, ela a altura apenas do que est sendo exibido.Para saber o tamanho total da div, necessrio usar a propriedade .scrollHeight.Com esses trs valores, possvel fazer o clculo para saber se a rolagem chegou ao fim.O quanto foi rolado, somado altura de exibio da div, ser igual ao tamanho total da div quando a barra de rolagem chegar ao final.No cdigo, isso seria:$(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight..Atualizando nosso script: $(document). ready(function() { $("#content"). scroll(function() { if ($(this). scrollTop() + $(this). height() == $(this). get(0). scrollHeight) { // a rolagem chegou ao fim, fazer algo aqui. } }); });.Dentro do if voc s precisa usar AJAX para pegar os dados do servidor. Ficaria algo mais ou menos assim: $(document). ready(function() { $("#content"). scroll(function() { if ($(this). scrollTop() + $(this). height() == $(this). get(0). scrollHeight) { $. ajax({ type: "post", url: "/maisitems/", success: function(data) { //manipula os dados $("#content ul"). append("" + item + ""); }, error: function() { } }); } }); });.O cdigo completo do HTML + Javascript fica assim: yLog Scroll Tutorial $(document).ready(function() { $("#content").scroll(function() { if ($(this).scrollTop() + $(this).height() == $(this).get(0).scrollHeight) { console.log("fim"); $("#content ul").append("item x");

$.ajax({ type: "post", url: "/maisitems/", success: function(data) { //manipula os dados $("#content ul").append("" + item + ""); }, error: function() { } }); } }); });

  • item 1
  • item 2
  • item 3
  • item 4
  • item 5
  • item 6
  • item 7
  • item 8
  • item 9
  • item 10

Espero que tenham gostado dessa dica.Se necessrio, gravem esse cdigo final, ele pode ser til.