Как загрузить части медленной страницы с помощью AJAX, чтобы ускорить загрузку в рельсах - PullRequest
0 голосов
/ 14 июля 2011

Я использую рельсы 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'

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Сначала вам нужно будет создать серверный скрипт, который, например, возвращает массив 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) и создаст список ссылок на каждый проект и т. Д., Которые вам нужны для вашегоконкретное решение.

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

Я решил это с помощью функций jquery ajax и load следующим образом:

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 были использованы для генерации внутреннего html для элементов #some_id и # some-other-id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...