页面加载后如何运行Twitter gem

问题描述 投票:3回答:1

我正在使用Twitter gem,但是我希望了解如何在页面加载后在后台运行它。

目前,我需要等待页面呈现,因为gem正在查询某些推文。一旦gem得到响应,页面就会加载。

但是,我希望在我的Twitter feed“ div”标签中显示一个“正在加载” GIF,一旦检索到Twitter信息,请用相应的内容替换该GIF。

我读了几篇文章,介绍了如何使用表单和表单上的“ :remote => true”标签来进行AJAX调用,这些调用不会重新加载各自的页面,但是我不想强迫访问者单击链接为了查看Twitter推文。

我正在使用:

  • Ruby版本:1.8.7
  • Rails版本:3.0.9
ruby-on-rails ajax twitter
1个回答
4
投票

有多种执行此操作的方法;一种相当普遍的做法以及解决方法是使用jQuery的$.ajax()从服务器获取数据并更新页面。

客户端:

  1. 正常加载页面并显示某种加载指示符。

  2. 拨打$.ajax()

    $.ajax({
      type: "GET",
      url: userId + '/tweets', // i.e. tweets is a nested resource of user
      success: function(tweets){
        $('#loading_indicator').hide();
    
        // Use the tweets that are returned to update the DOM
        $.each(tweets, function(ndx, tweet) {
          $('#tweet_list').append('<li>'+tweet.body+<'/li'>);
        });
      }
    });
    

服务器端:

在控制器中有一个动作,该动作将tweet作为JSON发送出去,以供客户端success回调使用。将此操作的路由设置为与$.ajax():中的url

兼容
class TweetsController < ApplicationController

  def show
    # collect tweets...
    render :json => @tweets
  end

end
© www.soinside.com 2019 - 2024. All rights reserved.