• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

AngularJS asynchroniczne pobieranie i wyświetlanie jak w AJAX

VPS Starter Arubacloud
–1 głos
373 wizyt
pytanie zadane 10 czerwca 2018 w JavaScript przez Prime_Bull Obywatel (1,820 p.)

Cześć, tworzę aplikację internetową, która operuje na bazie danych MySQL. Aktualnie zajmuję się czytaniem z bazy. Back-end zrobiony w node.js, który zwraca JSON. AngularJS ładnie odczytuje JSON'a, ale mam problem w momencie kiedy baza jest modyfikowana. Chciałbym, żeby widok zmieniał się asynchronicznie jak w AJAX, niestety dane dopiero aktualizują się jak odświeżę stronę:
AngularJS

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="persons"> 

<ul>
  <li ng-repeat="person in persons">
    {{ person.id + ', ' + person.last_name + ', ' + person.first_name}}
  </li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('persons', function($scope, $http) {
  $http.get("http://localhost:3000/rows").then(function (response) {
      $scope.persons = response.data;
  });
});
</script>

</body>
</html>

Patrzyłem w DevTools na Chrome to strona zwraca HTTP 304:

P.S.
Jaki framework/cokolwiek do front-endu i back-endu jest najbardziej przyjemne i rzadko może mnie zawieść?

komentarz 10 czerwca 2018 przez ScriptyChris Mędrzec (190,190 p.)

Co dostajesz w response

komentarz 10 czerwca 2018 przez Prime_Bull Obywatel (1,820 p.)

Jak dam wyrażenie w kodzie {{persons}} to dostaje:

Może to jest istotne, więc napiszę. Chodzi mi o przypadek kiedy jestem załóżmy zalogowany po SSH do MySQL i wstawiam dane do tabeli, wtedy oczekuję, żeby strona sama się zaktualizowała bez przeładowania. 

1
komentarz 10 czerwca 2018 przez ScriptyChris Mędrzec (190,190 p.)

W Twoim przypadku strona sama z siebie nie zaktualizuje się, bo to klient (przeglądarka) odpytuje serwer. Jeśli serwer ma powiadamiać klienta, skorzystaj z Server Notification lub użyj Web Socketów

Możesz też ustawić timer za pomocą $timeout lub $interval, aby co określony czas słać Ajaxa - jeśli pojawią się nowe dane na backendzie, to je sobie wstawisz na stronie. 

komentarz 10 czerwca 2018 przez Prime_Bull Obywatel (1,820 p.)
Dzięki, właśnie o to mi chodziło. Raczej skorzystam z Server Notification lub Web Socket.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 287 wizyt
pytanie zadane 23 grudnia 2018 w JavaScript przez kacperk89 Nowicjusz (140 p.)
0 głosów
1 odpowiedź 113 wizyt
pytanie zadane 31 maja 2015 w JavaScript przez hypothermi Obywatel (1,170 p.)
0 głosów
1 odpowiedź 485 wizyt

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...