Uso di .Net web api
Ho una pagina web che esegue il rendering di una raccolta di elementi in base ai valori dei filtri applicati tramite una chiamata ajax a un endpoint di API.
Gli elementi sono paginati in modo che se l'utente scorre verso il basso di una pagina, viene effettuata un'altra chiamata ajax all'api con il numero di pagina richiesto per il successivo set di elementi.
Ho appena ricevuto una richiesta di randomizzare tutti questi elementi ogni giorno.
Il problema ovvio qui è il paging ajax: ogni chiamata recupera il successivo gruppo di elementi che al momento è facile in quanto l'ordine di tali elementi non cambia. Quindi, se stiamo randomizzando, non posso semplicemente randomizzare ogni chiamata.
Quindi suppongo di aver bisogno di una sorta di memorizzazione nella cache ...
Questi sono pensieri fino ad ora:
- A mezzanotte, tutti gli elementi vengono caricati nella cache con una sorta di chiave di versione basata sulla data (in base all'ora del server).
- Tutte le chiamate client che sono elementi della pagina 1 otterranno sempre l'ultima versione della cache utilizzando la chiave basata sulla data. La risposta della pagina 1 restituirà la chiave di cache al client (insieme ai dati) in modo che eventuali chiamate per pagine superiori a 1 richiederanno la chiave di versione cache.
- Affrontare la possibilità che un utente effettui una richiesta di pagina 1 all'API alle 23:59:59 e quindi una richiesta di pagina 2 dopo la mezzanotte alle 00:00:30 potremmo scadere delle versioni della cache dopo 36 ore. Tuttavia, la nuova versione della cache viene creata ogni 24 ore a mezzanotte.
Questa è la direzione generale che sto considerando.
Qualcuno ha parole sagge?