2016-03-21 13 views
8

Sto lavorando su un progetto Laravel 5.1, utilizzando molte chiamate ajax che restituiscono blocchi html.Laravel 5.1 Memorizzazione cache ajax orientata agli oggetti

Per ottimizzare la velocità del sito Web, voglio implementare la cache di risposta privata e pubblica. questo funziona bene con seguente codice:

 return response() 
     ->json($result) 
     ->header('Cache-Control', 'public, max-age=300'); 

Eppure utilizzando in questo modo solito tenere in oggetti account sono aggiornati entro i 300 secondi.

Esistono possibilità che consentono di cancellare la cache di risposta di una richiesta, se e solo se gli oggetti di ritorno sono stati aggiornati?

+0

Per sapere che sono stati aggiornati, è necessario inviare la richiesta effettiva. A meno che non crei una sorta di innesco quando un valore viene aggiornato che indica alla cache che non dovrebbe più essere usato –

+0

Yup, potrei usare E-tag, con un hash md5 dello stato aggiornato. ancora voglio mantenere questo come ultima risorsa, e cercare un modo elegante nel frattempo. – Frederiek

risposta

0

Forse è possibile provare la cache sul lato server con qualcosa di simile qui sotto. dispiace questo è grezzo

function sometest(User $user) 
{ 

    /** . . .conditions to check if some data has changed . . . **/ 


    $jsonResponse = Cache::remember(Auth::id() . "_sometest", 300, function() use ($user) 
    { 
     $result = $user->all(); //get result here 

     return $result; 
    }); 

    return response()->json($jsonResponse); 
} 

È possibile leggere qui Cache

si può anche provare

Problemi correlati