2017-09-20 1 views
1

J'ai un site web avec beaucoup d'annonces.Symfony 3 Infinie Scroll pour annoncer

Je veux faire un chargement de défilement infini pour mon annonce.

En fait, ce que j'ai dans mon twig.html

{% extends 'base.html.twig' %} 
{% block body %} 

</br> 
     <div class="container"> 


     <!-- Menu --> 

     {% include '::announce/menu.html.twig' %} 


     {% for announce in announces|slice(0, 4) %} 

     <!-- Detail Announce --> 

      {% include '::announce/' ~ game ~ '/preview.html.twig' %} 

     {% endfor %} 

    </div> 

{% endblock %} 

J'essaie d'ajouter quelque chose comme ça

{% block javascripts %} 

<script type="text/javascript"> 
     jQuery(document).ready(function($) { 
      var count = 2; 
      $(window).scroll(function(){ 
        if ($(window).scrollTop() == $(document).height() - $(window).height()){ 
         loadArticle(count); 
         count++; 
        } 
      }); 

      function loadArticle(pageNumber){ 
        $('a#inifiniteLoader').show('fast'); 
        $.ajax({ 
         url: "{{ asset('ajax/ajax.html.twig') }}", 
         type:'POST', 
         data: "action=infinite_scroll&page_no="+ pageNumber + '&loop_file=loop', 
         success: function(html){ 
          $('a#inifiniteLoader').hide('1000'); 
          $("#content").append(html); // This will be the div where our content will be loaded 
         } 
        }); 
       return false; 
      } 

     }); 

Mais chaque boucle, je suis arrivé texte HTML, mais brindille qui ne fonctionne pas fonctionne avec mon ajax/ajax.html.twig.

Avez-vous une fonction plus simple pour faire une boucle lors du défilement avec

{% for announce in announces|slice(NBR, NBR+4) %} 

Ou tout simplement une correction dans mon code précédent?

Merci à tous

Répondre

1

Je vois 2 problèmes ici:

  • vous devez rendre votre fichier brindille,
  • votre mécanisme sera très lent lorsque vous avez beaucoup d'annonces.

Nous avons développé avec succès une fonction de défilement continu d'une manière différente. Nous n'avons pas chargé tous les articles à la fois, mais juste assez pour remplir la page. Ajax appel a été créé vers la méthode du contrôleur avec une page suivante comme l'un des arguments.

méthode appelée référentiel du contrôleur pour obtenir quantité correcte d'articles suivants et les retournés dans un fichier brindille rendu.