2012-04-03 13 views
4

Ich bin auf der Suche nach einem railsy Weg, Teilansichten in Rails 3.2 + zu streamen. Zurzeit wird das Streaming nur für das Erstellen von Teilen im Layout von der Vorlage über unterstützt. Aber ich habe n Beiträge auf einer Blog-Seite, jeder Beitrag wird teilweise in etwa 300ms generiert (bitte nicht fragen, warum es so lange ist) und ich möchte Benutzer den ersten Beitrag sofort zu lesen, wie es fertig ist.Stream Teilansichten in Ruby on Rails 3.2 +

Ist es jetzt in Schienen möglich? Gibt es eine Möglichkeit, die erzeugte Ausgabe wie in PHP explizit zu "leeren"?

Antwort

0

Nicht sicher, was Ihr Ladeschema in Ihrem Controller ist, also wäre ich sehr neugierig, das zu sehen. Ich würde persönlich nur ein paar "Posts" laden, da Sie eine angenehme Nutzererfahrung bieten möchten.

So würde ich so etwas wie diese (pseudo) versuchen:

-Controller & Helper:

def index 
    @posts = Posts.load_active 
    #other control logic 
end 

def self.load_active 
    @posts.find(:all, :conditions => "whatevs:, :limit => your_magic_number) 
end 

def load_next(pointer) 
    @posts.find(:all, :conditions => ["index > (?)", pointer], :limit => ymn) 
end 

Der Schlüssel zu allem ist das Javascript, das alles zusammen binden würde. Ich bin neugierig darauf, wie Sie damit umgehen, und hoffentlich können Sie sich ein Szenario vorstellen, in dem Sie abhängig vom aktuellen Standort des Lesers aktiv ein Update anfordern können.

Auch, um Ihren Punkt über eine gleichwertige Flush Adresse. Leider unterstützt Rails keine regelmäßigen Anfragen. Wie auch immer, vielleicht möchten Sie etwas in [Action Controler :: Streaming] sehen, wenn Sie es nicht bereits ausgecheckt haben: 1. Da Sie> 3.1 haben, können Sie es auch nutzen.

Wenn Sie irgendwelche Fragen haben, schlagen Sie mich auf und ich werde mein Bestes tun, um zu helfen. Entschuldigung, wenn mein Pseudo-Code für die Beschreibung zu kurz war

+0

Danke Dan! Dieser Ansatz (Aufteilen des Ladens einer großen Seite in mehrere Anfragen an den Server) ist natürlich offensichtlich und richtig. Aber ich suchte nach dem Streaming der _body_ von regelmäßigen Anfragen, da es mir nutzlos erschien, die Funktionalität der 'provide' Methode in den Schienen zu geben, ohne die Seite zu aktivieren, um ihre sich wiederholenden Inhalte zu streamen. – antonbaron

+0

aw ich sehe was du versuchst zu tun. Ziemlich viel ein running-Stream des Körpers, der mit dem Ort des Betrachtens des Benutzers aktualisiert wird? Ich kann versuchen, etwas für ein Streaming des Körpers zu peitschen –

+0

Genau. Nun, das wäre nett. Obwohl ich dieses Problem nicht mehr lösen muss, werden andere Leute die Antwort bekommen. – antonbaron