2011-03-28 1 views

Répondre

1

Il n'y a rien de mal avec requestAction, il est très facile de l'invoquer de manière inefficace et de fausser les performances de votre application. La façon dont cela fonctionne, vous vous retrouverez avec des objets monstres gonflés avec des propriétés, etc - des choses dont vous n'avez pas besoin et n'auriez probablement pas tiré si vous aviez réalisé que cela allait se passer comme ça. Combien de développeurs ne passeraient pas trois secondes supplémentaires à taper $ this-> Other-> Model-> si cela vous évitait d'essayer de déboguer un de ces objets? 85 fois sur 100, il existe une façon plus efficace (performance de l'application) de faire ce que vous avez besoin de requestAction() à faire. Il y a en fait une autre méthode intégrée dans le gâteau qui fait presque la même chose, seulement elle est destinée à être utilisée dans les contrôleurs et si je peux la trouver, je lierai ...

Editer Je n'arrive pas à trouver il. C'est quelque chose d'un peu plus obscur.

Réponse/suggestion à votre question, en évitant requestAction est particulièrement facile dans les vues/éléments.

Si les données sont moins abstraites et plus dynamiques, ajax -> appelle votre contrôleur/méthode, transmet toutes les données, etc, récupère votre résultat dynamique. Si les données sont très abstraites ou applicables - comme vous en avez besoin dans votre mise en page par défaut - pensez à les insérer dans votre AppController ou même dans le chargeur de démarrage. C'est probablement une solution beaucoup plus efficace - en la poussant de l'étape du processus plutôt que de pagayer en amont pour l'obtenir à l'étape du rendu. Les composants/assistants, bien sûr, seraient une autre façon de positionner l'extraction de données d'affichage à plusieurs contrôleurs + au niveau de la mise en page.

HTH :)

1

Je crois que requestAction est un bon outil. La plupart des frameworks MVC ne pensent même pas à la nécessité de montrer plusieurs parties de contenu, ce qui nécessite la plupart des cas dans une seule mise en page. Je ne suis pas sûr de savoir comment cela gâche les ressources et pourquoi la documentation vous fait croire qu'il s'agit d'un goulot d'étranglement au niveau des performances. Utilisez la mise en cache avec les bonnes clés et cela devrait faire l'affaire.

Questions connexes