Wpis z mikrobloga

Mireczki, mam sobie motyw na #wordpress, z którego korzysta kilka stron. Na jednej z podstron mam select2, który pokazuje mi dane z pewnego API (jedno dla wszystkich stron) Chciałbym zoptymalizować trochę działanie. Aktualnie działa to tak, że po każdym wejściu na konkretną podstronę robię request do api, w zwrotce dostaje token (bearer), który używam do pobrania danych, które ładuje w select2. No i teraz chciałbym to ogarnąć zgodnie ze sztuką tylko nie za bardzo wiem jak się za to zabrać. Do głowy przychodzi mi wywołanie konkretnego url, który sprawi pobranie aktualnych danych z api do np pliku, który zostanie zapisany na serwerze. Następnie chciałbym sobie ten plik odczytać w js i dalej już operować nad jsonem. Pytanie czy to dobry trop? Czy powinienem np curlem pobrać zwrotkę do pliku a w js weryfikować tylko czy dany plik istnieje i jeżeli tak to wtedy odpalać funkcje generująca select?
#programowanie #php #javascript
  • 4
@TeflonDon: Nie do końca zrozumiałe. Jak rozumiem, chcesz ograniczyć ilość uderzeń w API cache'ując odpowiedzi API? Podstawowe pytania - to czy dane są współdzielone między użytkownikami i jak często się zmieniają i czy masz prawo przechowywać dane na swoim serwerze (niektóre API na to nie pozwalają bądź pozwalają z limitem czasowym).

Możesz to optymalizować zarówno na poziomie danego użytkownika (np. w jego przeglądarce zapisywać informacje pobrane z API) tak, aby przy
@zwierzak40: tak, chce ograniczyć requesty do api. API jest „moje” w sensie wystawione przez backendowcow specjalnie pod motyw wiec mam wolna amerykankę ( ͡° ͜ʖ ͡°)Zmiana zwracanych danych jest dość dynamiczna. Czasami zmiana jest codzień a czasami raz na miesiąc (api zwraca listę firm). To set_transient wyglada spoko. Implementowałes coś takiego?
Zmiana zwracanych danych jest dość dynamiczna


@TeflonDon: Skoro to Twoje API to możesz cache'ować i wywoływać czyszczenie cache'u gdy coś się zmieni w danych (wtedy tamto API powinno uderzyć w stronę, aby strona usunęła u siebie cache i pobrała nową wersję). Wtedy masz 100% hit rate, zawsze świeże dane i najszybsze wyświetlenie dla usera.

To settransient wyglada spoko. Implementowałes coś takiego?

Jeżeli masz jakąś wtyczkę do cache'u obiektowego, to lepiej