Attualmente sto sviluppando un'applicazione utilizzando ASP.NET MVC5 e Knockout.
Per ora, l'architettura tipica è questa:
FooController.cs:
public ActionResult GetFoos(){
//...
var model = // everything that is needed in the ko viewmodel
//...
return View(model);
}
GetFoos.cshtml
<body>
<!-- potentially a lot of HTML and ko bindings to the view model -->
<script>
var fooViewModel = new FooViewModel(@Html.Json(Model));
ko.applyBindings();
</script>
</body>
Sto cercando un modo per escludere tutte le istanze del modello di visualizzazione da HTML (ad esempio, eliminare l'uso di Razor), quindi le chiamate ai controller lato server dovrebbero solo restituire dati JSON invece di visualizzazioni complete. Ciò consentirebbe la memorizzazione nella cache completa di HTML e JavaScript, invece di scaricare la vista HTML ancora e ancora.
Esiste una soluzione che consentirebbe all'app di scaricare lo script HTML necessario relativo a un'azione specifica, il che significa che questo particolare script dovrà essere scaricato solo una volta, poiché la prossima volta avremo bisogno di esso, verrà memorizzato nella cache dalla parte del cliente ? Forse un plugin a eliminazione diretta? O qualsiasi modello rilevante ...