【发布时间】:2017-03-18 20:34:28
【问题描述】:
我的 application.js 中有这个 JS 代码:
$(document).ready(function(){
var kraken_btc_eur_old = 0;
setInterval(function(){
$.get('https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR', function(data){
var kraken_btc_eur = data.result.XXBTZEUR.c[0];
kraken_btc_eur_old = kraken_btc_eur;
$(".kraken_btc_eur").text(kraken_btc_eur);
});
$.ajax({
type: "POST",
url: "/bets",
data: { parameter: kraken_btc_eur_old },
success: function (data) {
}
});
}, 10000);
});
到目前为止一切顺利,页面每 10 秒显示一次从 API 获取的新值,并将其放置到 HTML 中的相应类中,无需任何页面刷新。 我的问题是 AJAX 请求。我可以在 Rails 控制台中看到,每 10 秒发布请求都会触发我控制器中的创建操作,并且相应地执行代码:
def create
@bet = Bet.new
@bet.base_price = params["parameter"]
@bet.save
Bet.first.destroy
@bets = Bet.all
@bet_last = Bet.last
#render :js => "window.location = '#{root_path}'"
#redirect_to "index"
#render :inline => "<% @bets.each do |b| %><p><%= b.id %><p><% end %>"
end
但是,我无法在不刷新页面的情况下使用新值更新 html 视图。因为每 10 秒都会创建新的投注 (AJAX),所以我希望它们自动出现在页面中,无需进行任何刷新。 我尝试在我的创建操作中以不同的方式呈现,我意识到在我的浏览器控制台中的 ressources -> XHR 下创建了带有更新的 htm 的文档,但我没有设法将其替换为显示的文档而不进行任何刷新。
【问题讨论】:
标签: javascript ruby-on-rails ajax