2012-03-25 2 views
0

Ich plane, ein wenig mit der HTML5-History-API auf meiner Website zu experimentieren, um neue Inhalte asynchron zu rendern und Status für die Browser zu speichern, die sie unterstützen. Offensichtlich bedeutet dies, dass viele AJAX-Anfragen an den Server gestellt werden, und ich habe einen Haken in Bezug auf den Designansatz. Ich habe einige Bereiche auf der Website, die Inhalte bereits asynchron auf kleine Art und Weise rendern, und an diesen Stellen habe ich gerade meine eigenen Lösungen implementiert, um das neue HTML auf der Client-Seite zu generieren.Gibt es eine Möglichkeit in CakePHP, eine Sicht auf der Serverseite teilweise neu zu rendern, wenn Daten asynchron angefordert werden?

Allerdings, was ich versuche, jetzt zu tun, wird ein bisschen mehr eine robuste Lösung erfordern, und ich möchte es auf eine Weise, die den MVC-Fluss nutzt, anstatt sich auf eine Javascript-Templating-Engine oder mein eigenes verrücktes Javascript, um die von meinen Controllern zurückgegebenen Rohdaten zu verarbeiten. Da diese Funktion nur für bestimmte HTML5-fähige Browser relevant sein wird, möchte ich auf der Client-Seite lieber nicht eine Menge zusätzlicher Bloat-Funktionen einführen, die für eine Menge Leute nicht sichtbar sind.

Im Wesentlichen, was ich frage mich ist: gibt es einen Weg in Cake, die Präsentationslogik, die bereits in meinen View-Dateien ist selektiv zu generieren und nur die neue, bereit-zu-gehen HTML, die ich brauche, nutzen anstatt das Rad neu zu erfinden, um es auf der Client-Seite aus rohen Daten zu machen, die vom Controller zurückgegeben werden?

Antwort

0

Ich bekomme Ihr Problem nicht wirklich, aber ich höre, als ob Sie die Ansicht zwischenspeichern möchten, die tatsächlich von einer Ansichtsklasse gerendert wird, aber über den Controller mit Hilfe des CakeResponse-Objekts an den Browser zurücksendet.

+0

Grundsätzlich ich nur teilweise in der Lage sein wollen, einen Blick auf eine AJAX-Anforderung zu machen als eine Reihe von HTML zurückgegeben werden. Wenn ein Benutzer beispielsweise auf einen Link für einen anderen Beitrag klickt, möchte ich die bereits geschriebene Ansichtsdatei verwenden, um den HTML-Code für den Inhalt des Posts zu rendern und diesen zurückzugeben, ohne dass er den gesamten HTML-Code erstellt die Aussicht und das Layout in ihrer Gesamtheit. Ich glaube, ich habe vielleicht eine Lösung in '$ this-> render ('/ elements/some_element') gefunden – cmw

Verwandte Themen