частичные представления потока в Ruby on Rails 3.2+ - PullRequest
4 голосов
/ 03 апреля 2012

Я ищу удобный способ для потоковой передачи частичных представлений в Rails 3.2+. Прямо сейчас потоковая передача поддерживается только для получения деталей в макете из шаблона через Обеспечить . Но, скажем, у меня есть n сообщений на странице блога, каждое сообщение генерируется частично за 300 мс (пожалуйста, не спрашивайте, почему это так долго), и я хочу, чтобы пользователь сразу же начал читать первое сообщение, так как оно готовый.

Возможно ли это сейчас в рельсах? Есть ли способ явно "очистить" сгенерированный вывод, как в php?

1 Ответ

0 голосов
/ 09 августа 2013

Не уверен, какая у вас схема загрузки в вашем контроллере, поэтому мне было бы очень интересно это увидеть.Лично я бы загружал только несколько «постов», поскольку вы хотите обеспечить приятный пользовательский опыт.

Итак, я бы попробовал что-то вроде этого (псевдо):

Контроллер и помощник:

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

Ключ к этомувсе это JavaScript, который связал бы все это вместе.Мне любопытно, как вы справляетесь с этим, и, надеюсь, вы можете себе представить сценарий, в котором вы можете активно запрашивать обновление в зависимости от текущего местоположения читателя.

Также, чтобы обратиться к вашей точке зрения по поводу флеш-эквивалента.К сожалению, Rails не поддерживает потоковые регулярные запросы.Однако вы можете захотеть взглянуть на что-то вроде [Action Controler :: Streaming], если вы еще не проверили это 1 .Поскольку у вас> 3.1, вы можете использовать его.

Если у вас есть вопросы, задавайте мне вопросы, и я сделаю все возможное, чтобы помочь.Извините, если мой псевдокод был слишком кратким для описания

...