
Od niedawna rozpoczęłam moją przygodę z AngularJS i za jakiś czas planuję zrobić aplikację w postaci e-dziennika, zastępstw, czy też planu lekcji. Obecnie napotkałem na problem, który na dłuższą metę jest dość uciążliwy, a mianowicie - prędkość pobierania danych, a raczej nieustanne pobieranie. Może przedstawię kod:
smallApp.controller('Form', function($scope, $http, dane) { $scope.items = []; $scope.data = []; $scope.insert = function() { $http({ method: 'POST', url: 'file.php', data: { imie: $scope.imie, haslo: $scope.haslo, email: $scope.email }, headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) .success(function(data) { if (data.data_array) { $scope.items = data.data_array; console.log($scope.items); dane.get() .success(function(data) { $scope.data = data.data_array; }); } else { console.log("Wystapił błąd!"); } }); }; dane.get() .success(function(data) { $scope.data = data.data_array; }); }); smallApp.factory('dane', function($http){ return { get: function() { return $http.get('download.php'); } } });
Mógłbym użyć cache z wartością true podczas pobierania(zawsze szybciej pobiera..), ale wtedy dane będą pobierane z bufora, a mi zależy na tym, że po dodaniu jakiegoś rekordu do bazy, a kolejno przejściu do podstrony gdzie wyświetlam całą zawartość aktualizacja nastąpi bardzo szybko, bez ponownego "przeładowania". Czytałem trochę o obietnicach oraz $cachFactory, ale nie do końca wiem jak to ugryźć i czy w ogóle o to chodzi. Czy mógłbym prosić o jakieś naprowadzenie, wskazówki?
Z tego co się dowiedziałem to można to zrobić za pomocą web sockets, ale czy nie da się prościej? ^^
PS: Czy uważacie, że warto się uczyć angularjs? Czy ten framework ma według was więcej zalet, czy wad? Co byście polecili do operacji czysto DOM'owych, małych animacji, czy też zmian podstron bez przeładowania(czysty ajax?).
Pozdrawiam szubi