2012-07-11 6 views
0

Je lis des enregistrements d'un fichier XML et les affiche dans une table HTML créée dynamiquement (dans un div dont id = "content") avec javascript en utilisant la méthode push. Lorsque le nombre d'enregistrements est inférieur à 1000, le script s'exécute normalement et le contenu est affiché. Mais lorsque le nombre d'enregistrements dépasse 1 million, le navigateur (Actuellement utilisant Firefox) m'avertit en tant que script qui ne répond pas (Un script sur cette page peut être occupé, ou il peut avoir cessé de répondre.Vous pouvez arrêter le script maintenant, ou vous pouvez continuer à voir si le script va se terminer). Je sais que nous pouvons diviser les enregistrements et afficher avec la navigation de la page, mais j'ai besoin d'afficher tous les enregistrements dans la vue actuelle, tout comme dans l'option de défilement en ligne de Yahoo! Mail. Ou avant que tous les enregistrements sont affichés, je veux montrer une image de chargement dans le div "content" et après avoir à afficher le tableau HTML avec le contenu xml. Comment puis-je faire ceci?Chargement d'une grande quantité d'enregistrements de XML vers HTML Table

Répondre

0

Il y a une bonne raison à cela. Le chargement de millions d'enregistrements dans une page Web n'est pas une bonne idée car il va consommer votre mémoire pc. aussi simple que cela Les gens font beaucoup de solution de contournement pour cela, vous pouvez utiliser la pagination pour aller et venir. vous pouvez également utiliser le chargement paresseux. Comme vous ne pouvez voir que 10 enregistrements à la fois, les enregistrements sont chargés dynamiquement tout en faisant défiler une page vers le bas De nombreuses bibliothèques js ont une implémentation différente pour la pagination et le chargement paresseux. Voici un exemple de pagination à partir de Extjs enter link description here

Pagination et chargement paresseux. Utilisez l'une de ces techniques

0

vous pouvez charger des dossiers initialement après lorsque la portée de défilement à la charge de fin plus de disques et ainsi on.You peut utiliser suivant code javascript pour vérifier la fin de défilement et ainsi charger plus de disques:

$('#id').bind('scroll', function(){ 
      if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight){ 
       //load more records 
      } 
     }); 
Questions connexes