Javascript 使用Ajax或jQuery将Rails应用程序加载中的表元素与页面分离
我有一个页面,上面有一个用户站点列表,我在上面调用API来检查每个站点的状态。问题是,它会使页面永远无法加载,因此我希望加载页面,然后在使用AJAX或jQuery完成检查后更新表元素。不过,我对AJAX或jQuery不是很在行,我一直在阅读的所有Rails/AJAX教程似乎都更多地处理存储在数据库中的表单和数据。以下是我的表元素: 我的部分观点 我怎样才能像上面提到的那样单独加载?我知道我还没有任何尝试过的代码,但我真的不知道从哪里开始Javascript 使用Ajax或jQuery将Rails应用程序加载中的表元素与页面分离,javascript,jquery,ruby-on-rails,ajax,coffeescript,Javascript,Jquery,Ruby On Rails,Ajax,Coffeescript,我有一个页面,上面有一个用户站点列表,我在上面调用API来检查每个站点的状态。问题是,它会使页面永远无法加载,因此我希望加载页面,然后在使用AJAX或jQuery完成检查后更新表元素。不过,我对AJAX或jQuery不是很在行,我一直在阅读的所有Rails/AJAX教程似乎都更多地处理存储在数据库中的表单和数据。以下是我的表元素: 我的部分观点 我怎样才能像上面提到的那样单独加载?我知道我还没有任何尝试过的代码,但我真的不知道从哪里开始 谢谢您的帮助。只需在窗口加载时将AJAX调用附加到td,页
谢谢您的帮助。只需在窗口加载时将AJAX调用附加到td,页面呈现后将对其进行评估。AJAX调用可以是这样的:
$(window).load(function() {
var target = $(".td-that-will-be-evauated-later")
url = target.data("url")
$.ajax({
url: url,
type: "GET",
dataType: "json",
success: function(result){
target.html(result.body)
},
error: function(xhr, status, error) {
$(target).html("error");
}
})
})
Url应指向将获取特定用户信息的控制器操作,例如:
class UsersController < ActionController::Base
def fetch_info
@user = User.find(params[:id])
@response = @user.fetch_info
render json: {success: true, body: response.body}
end
end
看起来很酷。不过我还是需要一点澄清。我在上面添加了一些代码。你能更新你的答案来处理上面的问题吗?或者告诉我你还需要看到我的代码的哪些方面,这样我就可以复制/粘贴你的代码,它就可以工作了?谢谢。老实说,我认为没有必要给你完整的复制粘贴代码。你需要了解这是如何运作的,你需要两个行动。首先是加载视图。第二个是在视图呈现后发送的AJAX请求。对不起,JS不是我的事。那么AJAX中的url就是API调用url吗?在url中,我将如何检查JSON中的状态。另外,我有点不确定用户控制器代码的作用。
$(window).load(function() {
var target = $(".td-that-will-be-evauated-later")
url = target.data("url")
$.ajax({
url: url,
type: "GET",
dataType: "json",
success: function(result){
target.html(result.body)
},
error: function(xhr, status, error) {
$(target).html("error");
}
})
})
class UsersController < ActionController::Base
def fetch_info
@user = User.find(params[:id])
@response = @user.fetch_info
render json: {success: true, body: response.body}
end
end