Je souhaite ajouter la mise en cache à certaines actions enfants afin que je puisse mettre en cache séparément les parties d'une seule page.MVC: OutputCache et RenderPartial extrêmement lent
J'ai besoin de la même méthode de contrôleur pour être accessible à la fois depuis AJAX et avec RenderAction
(ou une autre méthode d'intégration). J'ai changé mon code pour utiliser RenderAction
et j'ai constaté que chaque Html.RenderAction
ajoute environ 1 seconde au temps de chargement de la page, lorsque la première charge est si lente - il est difficile de profiter des fruits des charges suivantes.
J'ai vu des réponses ici sur le SO, conseiller de rester loin de RenderAction
...
Alors, quelle est la meilleure stratégie pour éviter le décalage RenderAction
et toujours être en mesure de cache et une seule méthode que je peux appel à la fois HTML et AJAX? (et .. comment gérer l'invalidation du cache dans ce cas?)
oui, parfois 'JsonResult' et parfois' View'. J'utilise le moteur Razor - le temps de mise en cache est super, mais la première charge est péniblement lente. Oui, en utilisant OutputCache avec VaryByParam (avec beaucoup de paramètres .. EDIT: 6) – Madd0g
vous ne devriez pas avoir trop de paramètres, car le cache utilisera trop de mémoire. Il va recycler les premiers objets mis en cache et ralentir la page. Cache memoryUsed = viewText^paramValuesCount. Si paramsCount = 6 et paramValuesCount = 1000 mémoire utilisée = 10K^6000 = débordement) et votre cache ... recycle les éléments dès qu'ils sont mis en cache. – Softlion
Pour le moment, je suis plus préoccupé par la performance de 'RenderPartial', la partie de la question de la mise en cache est plus conceptuelle, de la façon de DRY lors de l'utilisation du cache de sortie – Madd0g