Pergunta

O que é melhor para a paginação pega? do lado do servidor ou fazê-lo dinamicamente usando javascript?

Eu estou trabalhando em um projeto que é pesado sobre o ajax e puxando em dados de forma dinâmica, então eu estive trabalhando em um sistema de paginação javascript que usa o dom - mas eu estou começando a pensar que seria melhor lidar com isso de lado todos os servidores.

O que são os pensamentos de todos?

Foi útil?

Solução

A resposta certa depende de suas prioridades e o tamanho do conjunto de dados a ser paginado.

paginação do lado do servidor é melhor para:

  • grande conjunto de dados
  • carregamento de página mais rápido inicial
  • Acessibilidade para aqueles que não a execução de JavaScript

paginação do lado do cliente é melhor para:

  • pequeno conjunto de dados
  • Faster posterior página carrega

Então, se você está paginating principalmente por razões cosméticas, faz mais sentido para lidar com isso do lado do cliente. E se você está paginating para reduzir o tempo de carregamento inicial, do lado do servidor é a escolha óbvia.

É claro, a vantagem do lado do cliente em posteriores de carregamento da página vezes diminui se você utilizar Ajax para carregar páginas seguintes.

Outras dicas

Fazê-lo no lado do cliente fará o download do usuário todos os dados no primeiro que pode não ser necessário, e irá remover o principal benefício de paginação.

A melhor maneira de fazê-lo para esse tipo de AJAX aplicações é fazer AJAX chamar o servidor para a próxima página e adicionar atualizar a página atual usando o script do lado do cliente.

Se você tem grandes páginas e um grande número de páginas que são melhores de solicitar páginas em pedaços a partir do servidor via AJAX. Então deixe o servidor fazer a paginação, com base do seu URL pedido.

Você também pode pré-busca próximas páginas o usuário provavelmente vai ver para fazer a interface parece mais responsivo.

Se houver apenas algumas páginas, agarrando tudo up-front e paginação no cliente pode ser uma escolha melhor.

Mesmo com pequenos tamanhos de dados a melhor escolha seria servidor pagination lado. Você não terá que se preocupar mais tarde, se suas escalas de aplicações web mais.

E para tamanhos de dados maior a resposta é óbvia.

lado do servidor -. Enviar para o cliente apenas o conteúdo suficiente para a visão atual

Em um mundo prático de limites, gostaria de página no lado do servidor para conservar todos os recursos associados com o envio de dados. Além disso, as necessidades do servidor para se proteger de um cliente malicioso / avaria pedindo uma página enorme.

Uma vez que o código é feliz chugging, gostaria de acrescentar "smarts" para o cliente para obter o "próximo" e "anterior" página e espera que na memória. Quando as páginas de usuário para a próxima página, atualizar seu cache.

Se o software cliente faz esse tipo de página em cache, considere quão rápido suas idades dados (é provável que a mudança) e se você deve verificar se a sua página de cache de dados ainda é válido. Talvez re-solicitá-lo se ele idades mais de 2 minutos. Talvez ter uma bandeira "sujo" nele. Algo parecido. Espero que você ache isto útil. :)

Você quer dizer que seu JavaScript tem todos os dados na memória, e mostra uma página de cada vez? Ou que ele baixa cada página do servidor, como é necessário, usando AJAX?

Se ele é o último, você também pode precisar de pensar sobre a classificação. Se você tipo usando JavaScript, você só vai ser capaz de classificar uma página de cada vez, o que não faz muito sentido. Portanto, sua ordenação deve ser feito no servidor.

Eu prefiro a paginação do lado do servidor. No entanto, aquando da sua aplicação, você precisa ter certeza de que você está otimizando seu SQL corretamente. Por exemplo, eu acredito em MySQL, se você usar a opção LIMIT ele não usa o índice então você precisa reescrever seu sql usar o índice corretamente.

G-Man

Um outro aspecto a salientar aqui é que muito raramente você vai ser limitado a simplesmente folhear um conjunto de dados crus.

Você pode ter que procurar certos termos em uma ou mais colunas que está a ver, e depois dizer espécie em algumas colunas e, em seguida, dar aos usuários a capacidade de página através deste conjunto de dados filtrados.

Em uma situação como esta você pode ter que ver se seria melhor ter esta pesquisa lógica e / ou do lado do cliente tipo ou do lado do servidor.

Outra coisa a considerar é que a pesquisa api em nuvem da Amazon dá-lhe algumas habilidades de pesquisa muito poderoso e, obviamente, você vai querer permitir que busca nuvem para lidar com pesquisa e classificação para você, se acontecer de você ter seus dados hospedados lá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top