Sto appena iniziando a cercare nella cache per migliorare le prestazioni e ho una domanda sulla memorizzazione nella cache di una chiamata AJAX.Come funziona la memorizzazione nella cache di ASP.NET MVC per una richiesta AJAX?
Ho un'azione che viene utilizzata per interrogare Twitter e quindi restituire i risultati. Nel momento in cui un utente preme un pulsante carica una gif rotante mentre si avvia all'azione per eseguire la query e quindi restituisce una vista parziale. jQuery aggiorna quindi un div con la risposta HTML dalla vista. Normalmente questo richiede circa 5 secondi. Hanno quindi un pulsante più che si spegne per ottenere più risultati.
Cosa succede se metto CachingAttribute su questa azione? So che posso provarlo ma voglio solo spiegare il lato tecnico delle cose.
Grazie
ecco la mia Javascript:
$('#blogEntryList #moreLink').live("click", function() {
$('#morespan').toggle();
$('#loader').toggle();
$.get($(this).attr("href"), function(response) {
$('#blogEntryList ol').append($("ol", response).html());
$('#blogEntryList #moreLink').replaceWith($("#moreLink", response));
$('#loader').hide();
$('#morespan').show();
});
return false;
});
Ecco la mia azione modificata:
[OutputCache(
Location = OutputCacheLocation.Server,
Duration = 100,
VaryByParam = "")]
public ActionResult BlogPosts(int? entryCount)
{
if (!entryCount.HasValue)
entryCount = defaultEntryCount;
int page = entryCount.Value/defaultEntryCount;
IEnumerable<BlogData> pagedEntries = GetLatestEntries(page, defaultEntryCount);
if (entryCount < totalItems)
AddMoreUrlToViewData(entryCount.Value);
return View("BlogEntries", pagedEntries);
}
Quindi, quando l'utente fa clic su più dati nella mia situazione, restituirà i primi 10 risultati più e più volte fino alla scadenza della cache? In tal caso, probabilmente non voglio usare una cache perché quando fanno clic su altri dati non può essere memorizzato nella cache – Jon
@Jon, è possibile utilizzare la proprietà 'VaryByParam' per specificare un nome di parametro azione come ad esempio il numero di pagina. –
VaryByParam può contenere un valore CSV di valori, ad esempio/se si dispone di 5 numeri di pagina? – Jon