Hello les devs,
Voila je rencontre un petit problème avec mon code.
J'ai développe une solution avec un Back Symfony et un front angular JS. Mon back charge un XML via une URL donnée par l'utilisateur, hydrate une entité SF avec ces données et renvoi une response JSON.
Mon front fait un GET lors d'un click, recupere ces données et affiche tout quand celles ci sont chargés.
Mon action back Symfony
public function apiAction(Request $request)
{
$myurl = $request->query->get('url');
$myJsonDatas = $this->get('my.service.parse.xmltoobject')->parse($myurl);
return new Response(
$myJsonDatas, 200, ['Content-Type' => 'application/json']
);
}
Mon front angular
var myApp = angular.module('myApp', []);
myApp.factory('ajaxService', function($http) {
return {
getMyDatas: function(urlToFetch) {
return $http.get(Routing.generate('myroute', { url: urlToFetch}))
.then(function(res) {
return res.data;
});
}
}
});
myApp.controller('myController', function($scope, ajaxService) {
$scope.getDatasAPI = function() {
var myUrl = $('.url_input');
var urlToFetch = myUrl.val();
ajaxService.getMyDatas(urlToFetch).then(function (products) {
$scope.products = products;
});
};
});
Problème : J'ai testé avec 10000 données et l'app a crashé...
Ainsi, je souhaite maintenant afficher mes datas au fur et a mesure que les données sont chargés. Au lieu de tout récuperer et d'affiche tout en meme temps à la fin, j'aimerais afficher mes données dès qu'elles sont chargés, et quelles aparaissent au compte goute.
Mais je n'ai pas idée de comment faire (jamais fait).
Actuellement, ma solution est fonctionelle mais pas pour un énorme nombre de données, je cherche ainsi une solution pour afficher ces données en real time au fur et a mesure.
Merci.
Salut,
Oriente-toi vers du lazy loading.
Voici un exemple trouvé sur Codepen : http://codepen.io/zachwills/pen/dPOoZO
Perso je ferais une pagination, je chargerais les éléments au fur et à mesure du scroll :)
Merci les gars !
Par pagination, tu entends envoyer 100 datas par request ainsi que le count($datas), incrémenter l'index a chaque fois coté back ?
C'est ça, côté front tu calcul le nbre de page et tu demande au serveur une certaine page en fonction de ce que tu veux