2009-07-30 5 views
2

Feuern Sie Ajax-Anfragen über das MVC-Framework Ihrer Wahl oder direkt an den CFC ab?Ajax Anfragen, über MVC Framework (z. B. ColdBox) oder nicht?

Ich bin in Richtung der Umgehung der MVC gelehnt, da ich keine 'Ansicht' von der Ajax-Anfrage brauche.

Was sind die Vorteile von Routing Ajax Anrufe über MVC-Framework, wie Coldbox?

Update: gefunden Diese Seite http://ortus.svnrepository.com/coldbox/trac.cgi/wiki/cbAjaxHints, aber ich versuche immer noch die um meinen Geist zu wickeln, welche Vorteile es über die Komplexität bringt es führt ...

Antwort

4

Henry, ich mache meine Ajax-Anfragen an Proxy-Objekte meines Modells. Normalerweise bin ich dabei außerhalb eines "Rahmens". Unter diesen Umständen kann es (sehr) notwendig sein, Ihr Framework zu verwenden, beispielsweise innerhalb eines festgelegten Sicherheitsmodells zu arbeiten.

+6

* Jedes Mal * Ich habe versucht, direkt mit einem CFC zu gehen, ich habe es bereut. Cutters Standpunkt zur Sicherheit ist nicht zu unterschätzen. Sie erwähnen ColdBox und "Komplexität", aber ich sehe nicht, wie die Komplexität durch einen Proxy geht. Für mich hat es die Dinge stark vereinfacht: fügen Sie eine neue Funktion in die Proxy, dass die Delegierten auf, was Code macht die eigentliche Arbeit, und dann das Ergebnis machen. Hier glänzen Frameworks wie ColdBox. –

2

Der Zweck der „Ansicht“ in MVC-Frameworks auf zeigen die Daten nach dem "Modell" und "Controller" haben es generiert. Wenn Sie die "Ansicht" nicht benötigen, warum sollten Sie dann ein solches Designmuster verwenden?

+0

Der einzige Punkt, an den ich denken kann, ist, dass MVC-Framework die Singleton-Dienste bereitwillig verfügbar hätte, und vielleicht einige Authentifizierungsunterstützung ... nicht sicher, ob mir irgendwelche anderen Vorteile fehlen, falls vorhanden. – Henry

+1

Aber warum brauchen Sie nicht die "Ansicht" für Ajax-Anfragen? –

+0

@LucaMatteis ‚view‘ geeignetere kann ‚die Präsentationsschicht‘ oder mit anderen Worten bezeichnet werden, was wird zurück an den Client gerendert. Die Verwendung des Entwurfsmusters ermöglicht die Trennung von Bedenken, was sich positiv auf die Wartbarkeit auswirkt, auch wenn das, was Sie zurückgeben, von einer JavaScript-Funktion und nicht von der Layout-Engine des Browsers konsumiert werden soll. – jinglesthula

0

Ich stimme Luca zu. Es umgeht auch jede Art von Desinfektions- und Filterlogik, die Sie in Ihrem MC-Stack haben. Es negiert im Grunde jede Art von Abfrageverarbeitung, die Sie möglicherweise nicht haben.

4

Ich kann wirklich keinen Vorteil der Umgehung der MVC-Framework sehen - in Kombination sind diese drei Elemente Ihre Anwendung.

Ihre Ajax-Elemente sind wirklich Teil der Ansicht. Wie Luca sagt, gibt die Ansicht die Ergebnisse des Modells und des Controllers aus.

Sehen Sie es sich so an - wenn Sie eine iPhone-freundliche Webschnittstelle (dh eine neue Ansicht) erstellt haben, würden Sie das Modell und den Controller umgehen?

4

Luis Majano, der Schöpfer von ColdBox said:

Dies sind die beiden Schulen von Ajax Interaktion henry.

Ich ziehe den Proxy-Ansatz, weil es fügt folgendes:

  1. Debuggen
  2. im Debugger Tracing
  3. AOP Schnittpunkte
  4. Sicherheit
  5. Einstellung Verfügbarkeit
  6. Der Proxy wird an das Ereignismodell weitergeleitet, sodass ich die lokale Überwachungverwenden kannPunkte, lokale AOP, Plugins, usw.

Mit anderen Worten, es kann eine hoch überwacht Anruf anstelle eines einfachen Service cfc Anruf sein, was man kann immer noch tun.

I, für einen, lieben meinen Ausführung Profiler ausgeführt wird (Teil der Coldbox Debugger) zu haben, so kann ich sehen, wenn Ajax Anfragen kommen und wenn sie kommen aus. Ich kann die angeforderten Daten sehen und die Daten zurückgesendet. Ich habe nicht zu in Log-Dateien suchen, oder versuchen Ergebnisse oder Probleme vorstellen. Es hilft wirklich im Debuggen.

Allerdings wäre es ein Entwickler Wahl sein, auf welche Weise Sie gehen entscheiden. Meine persönliche Präferenz ist immer verwenden Sie meinen Proxy zur Ereignisdelegation , weil es mir viel mehr Flexibilität, Debugging und Frieden von Geist gibt.

+0

Der Coldbox-Proxy ist sehr leistungsfähig, wenn er richtig verwendet wird. Ich sende alle meine Ajax-Anrufe obwohl es. Es hilft mir, meinen Code organisiert zu halten und erlaubt mir, alles zu überwachen. Wie Luis sagte, es gibt mir Seelenfrieden. – JoshHighland

0

Ja, ich würde Ihren Rahmen nicht umgehen, herauszufinden, was die Ursache Sie Trauer und die beanstandeten Stücke jagen, Logik Hinzufügen von gemeinsamen Komponenten auszuschließen wie Kopf- oder Fußzeilen, und suchte nach Methoden Leerzeichen Injektion, dass, während fein für html ist nervig oder unten rechts problematisch beim syntaktischen json.

Hinzufügen von output = "false" vor allem in Ihrer application.cfc und es wäre die erste Sache, die ich aufgeräumt habe.

Ich glaube fest daran, dass ich NIE direkt auf die CFCs zugreife. Ich finde, es schafft langfristige Probleme, wenn ein wichtiger Refactor Komponenten konsolidieren oder eliminieren möchte. Die direkten Zugriffe machen dies möglicherweise schwieriger als es sein sollte, besonders wenn Eine dritte Partei trifft Ihre Ajax aus einer anderen Domäne (zB Flash-Remoting).

+1 zu Steves Antwort.