Executando verificação de segurança...
3

Por que o mercado livre não mostra logo todos os resultados de uma só vez?

Sabe quando você acessa um site, vamos considerar o mercado livre por exemplo, e lá embaixo no final da página tem uns números e uns botões “Anterior” e “Próximo”?

exemplo de paginação

Então, isso se chama paginação. Alguns sites mostram uma quantidade pré definida de produtos na página, 30 produtos por página por exemplo. E tem sites que eles até deixam você mesmo escolher a quantidade de produtos para mostrar na página, mas é sempre uma quantidade limitada.
Vamos imaginar que eu estou procurando um celular para comprar por exemplo, eu não quero ver somente os 30 celulares da primeira página, eu quero ver todas opções, para que eu possa escolher o melhor celular custo/benefício pra mim. Mas para eu conseguir ver todos os celulares, eu tenho que ver todas as 30 opções da primeira página, depois clicar em “Próximo”, ver todas as 30 opções da segunda página, e assim por diante até eu conseguir ver todas as páginas. Isso seria bem trabalhoso, certo?
Se você assim como eu é curioso e quer entender como as coisas funcionam, você também já fez a mesma pergunta que eu:
Por que o mercado livre não mostra logo todos os celulares de uma só vez? Assim eu não preciso ficar navegando várias páginas até conseguir ver todos os celulares.

Os dados de todos esses celulares são enviados pelo servidor do mercado livre para o dispositivo que está acessando o site(pc, celular, tablet, etc...), e essa quantidade de dados precisa ficar armazenada em algum lugar certo? Adivinha onde? Isso mesmo que você pensou, na memória RAM. Por mais que você tenha um dispositivo top de linha com ótimas configurações, ele também tem um limite. Além do mais, precisamos levar em consideração que o seu dispositivo é muito bom, mas isso não quer dizer que o dispositivo das outras pessoas também é. Dito isso, dependendo da quantidade dos dados, o navegador pode ficar extremamente lento ou no pior caso pode até travar ao tentar processar tantos dados.

Outro problema que teríamos além de memória: as vezes sentimos uma demora para carregar uma página com apenas algumas dezenas de produtos certo? agora imagine ter que esperar carregar uma página com milhões desses produtos? Além disso, consultas pesadas assim podem causar gargalo no banco de dados.

Paginação vai muito além, também temos que analizar como faremos a paginação, qual estratégia usaremos, offset, scroll infinito, cursor, todas opções tem pontos positivos e negativos dependendo da aplicacão. Mas eu já me empolguei demais por hoje, por mim eu continuaria escrevendo mais kkk. Se você leu todo esse textão, comente “é muito bom entender para aprender” para eu saber que existem mais pessoas como eu, que gostam de desenvolvimento de software. Espero de verdade ter te ajudado entender “por que o mercado livre não mostra logo todos os resultados de uma só vez”?

Carregando publicação patrocinada...
2

Por mais que você tenha um dispositivo top de linha com ótimas configurações, ele também tem um limite

Sinceramente não acredito que as empresas estejam muito preocupadas com o quanto de ram vai gastar do seu celular.

Paginação é primariamente para preservar recursos do servidor. Sim, em grande escala a quantidade de registros retornados pelo DB gera custos de rede e processamento altíssimos.

Lembro de uma notícia no início da internet que a Google trocou a logo para um visual mais "flat" (quase imperceptível ao olho humano) e iria economizar dezenas de milhões de dólares por ano somente com transferência de rede

1

Concordo com tudo que vc comentou @Pilati, menos com essa frase:

Sinceramente não acredito que as empresas estejam muito preocupadas com o quanto de ram vai gastar do seu celular.

Eu acho que elas se preocupam sim. Pq imagine comigo, se toda vez que eu entrar em um e-comerce meu dispositivo travar, com certeza vou parar de usar aquele sistema, e consequentemente outros usuarios tbm vao abandonar se o problema percistir concorda?

1

Eu acho que elas se preocupam sim.

Se as empresas se preocupassem não teria tanto "aplicativo" construído em cima de webview, que é apenas uma casca de um browser transformada em app para poder ter acesso às notificações do usuário

1

Pela minha experiência, na esmagadora maioria dos casos a memória RAM do usuário é uma das menores preocupações. As principais são as que já foram mencionadas: carga no servidor e tráfego de rede. O fato de no fim também usar menos memória no dispositivo cliente é mera consequência.

A preocupação com a RAM do usuário só se torna prioridade se for um problema muito crítico, que está realmente travando as vendas de forma significativa. Se for só uma minoria de usuários, muitas vezes nem compensa arrumar (pelo menos é o que pensam os gestores, que só olham os números de vendas e o custo da infra).

Outro ponto é que vários estudos já apontaram que a maioria dos usuários não passa das primeiras páginas. Os números variam conforme o tipo de site, país, ano da pesquisa, etc, mas em geral mais da metade fica só na primeira página, e uma porcentagem pequena passa das 4 primeiras. O que é mais um motivo para não precisar mostrar tudo de uma vez.

1

Vou contar um caso que aconteceu quando comecei a trabalhar na Natue (antigo e-commerce de alimentos saudáveis).

Certa vez eu estava numa manhã trabalhando normalmente, quando comecei a ficar incomodado que meus dedos estavam doendo por causa do calor do alumínio do meu Mac. 🔥

Estranhei, meu Mac Pro era super potente para a época, não era para esquentar a ponto de queimar meus dedos!

Dei um htop com ps aux básico e descobri que um script rebelde no JS estava topando CPU. 😱

Pedi para um colega abrir o site no notebook dele (ele tinha um i5 normal), e o site estava quase irresponsivo. 🤨

Reportei o erro (que foi corrigido rapidamente), apesar de ninguém nunca ter reclamado da lentidão.

Moral da história: os KPIs da empresa são vendas, conversões, abandono de carrinho de compras... As vezes o site vende, mesmo sendo lento para os usuários, e tá tudo bem 🤷