Wpis z mikrobloga

Cześć. Mam swój sklep w którym pobieram standardowo produkty kategorii via MySQL i generuję widok w .php. Filtrowanie działa na zasadzie przeszukiwania bazy i dopasowania produktów do wybranych parametrów. Metoda ta jest przestarzała i mocno obciąża serwer. Chciałbym przejść na generowanie pliku JSON i generowaniu widoku/filtrowaniu za pomocą JS. Co polecacie z najprostszych rozwiązań? jQuery + metoda filter w JS? A może coś innego?
#php #javascript #webdev
  • 7
@piterek: co to za sklep? Będzie to wymagało raczej przepisania całego sklepu. To co wyżej opisałeś to typowy podział backend/frontend (w uproszczeniu). Samo generowanie wyników na podstawie kryteriów szybciej działać nie będzie aczkolwiek możesz je conajwyżej opakować w ładny spinner - "trwa ładowanie, prosze czekać". Może trzeba poprawić zapytania - czasem rozbicie je na kilka bywa lepszym pomysłem. Dużo zalezy od tego co tam jest zrobione :)
  • 0
@vviktor123488: mój autorski napisany jeszcze w KohanaPHP 3.x ;) Wydaje mi się że najbardziej optymalnym rozwiązaniem będzie pobieranie JSONa raz po wejściu w kategorię i filtrowaniu go (w razie potrzeby) + generowanie widoku. Myślałem o Vue.js ale może jest coś mniejszego przeznaczonego typowo do takich działań.
@piterek: Rozumiem. Tylko pytanie jest takie co powoduje taki długi czas oczekiwania/obciążenia serwera? Bo zazwyczaj generowanie widoku nie jest specjalnie długie - no chyba że nie ma paginacji :) Prawie zawsze problemem jest ilość danych, relacje między tabelami oraz warunki w zapytaniu. Może to też być słaba instancja bazy danych - po prostu serwer bazodanowy jest za słaby. Bez większej ilości szczegółów ciężko cokolwiek powiedzieć. Znam też takie przypadki że ktoś
  • 0
@vviktor123488: Czas oczekiwania nie jest długi ale chciałbym przerzucić część operacji na klienta :) Ze stronicowania oczywiście korzystam. DataTables znam i używam ale do danych tabelarycznych.
Chciałbym przejść na generowanie pliku JSON i generowaniu widoku/filtrowaniu za pomocą JS.

dostosować się do nowych trendów w webdev ;)


@piterek: co do tego, że wystawianie API i składanie widoku na froncie jest prawidłowym trendem polemizować nie będę, ale filtrowanie całego JSONa przez JS na pewno nie będzie wydajniejsze od filtrowania po sql, no chyba, że mówimy o rządach rekordów liczonych w setkach, nie tysiącach.