我正在使用rails 2.3。我想通过ajax加载一些页面的一些慢查询来加速页面加载。实施例
<div id="count-projects"><%= Project.count%></div>
...
<div id="some-stuff"><%= User.count %> users and <%= Book.count%> books</div>
我想重写上面的代码,以便有两个ajax请求,其响应被放入div中,带有'count-projects'和'some-stuff'
答案 0 :(得分:1)
首先,您必须创建一个服务器端脚本,例如返回一个JSON数组
[
{"name":"first project", "href":"abc.php"},
{"name": "second project", "href":"def.php"}
]
当您通过URL请求它时(?action = getProjects将是一个好名字)。然后我建议使用jQuery请求。它将使您能够使用以下代码
$.getJSON(url, {action:'getProject'}, function(json){
$.each(json, function(i, project) {
$('div#count-projects').append('<a href="' + project.href + '">' + project.name + '</a>');
});
});
然后,这将从服务器获取JSON数据(由Ruby从数据库创建),并创建指向您的特定解决方案所需的每个项目等的链接列表。
答案 1 :(得分:0)
我使用jquery的ajax解决了它并加载了如下函数:
jQuery.ajax({url: "/controller/action_1",
success: function(data){
jQuery("#some_id").html(data);
}});
jQuery("#some-other-id").load("/controller/action_2");
另外,partials views / controller / action_1.html.haml和views / controller / action_2.html.haml用于生成元素#some_id和#some-other-id的内部html。