Как правильно разбивать на страницы (, особенно с помощью JQuery и Jersey)

Просто хочу запустить мой метод разбивки на страницы с Джерси на стороне сервера и JQuery на стороне клиента.

На сервере (при условии, что пользователь только что запросил /rest/users?page=1):

    // Hardcoded the page number here, but it would be page-1, page+1
    String prevLink = uriInfo.getRequestUri() + "?page=0";
    String nextLink = uriInfo.getRequestUri() + "?page=2";
    String linkHeader = String.format(LINK_HEADER_TMPL, prevLink,  nextLink);
    return List currentPageResults;

Это дает мне следующий заголовок в ответе:

Link: ; rel="prev", ; rel="next"

На клиенте:

 var xhr = $.getJSON("rest/users", function(allData) {
        var links = (xhr.getResponseHeader("link")).split(',');
        var relLinks = [];
        $.each(links, function(index, value) {
            var parts = value.split(';');
            var url = parts[0].replace(/^.*<(.*)>.*$/m, '$1');
            var rel = parts[1].replace(/^.*"(.*)".*$/m, '$1');
            relLinks[rel] = url;
        });

        alert(relLinks['prev']);

Предупреждение дает мне то, что нужно, и это то, что я буду использовать для создания ссылок на свои страницы :

http://localhost:8880/rest/users?page=0

. Итак, вопросы:

  1. Правильно ли отформатирован заголовок моей ссылки? Парсинг заголовка ссылки на клиентская сторона кажется немного судорожной.
  2. Это правильный/принятый способ сделать это? Я посмотрел на Джерси фильтр ответа, но это требует добавления специфичного для Джерси -аннотации к классу модели, чего я не хотел делать.
  3. Как насчет общего количества доступных страниц? Существует ли стандартный способ дать это в информации? Если бы у меня было общее количество страниц, я, вероятно, мог бы вообще удалить rel-ссылки и просто сгенерировать их на стороне клиента? Это было бы правильно?

Кстати, как появился весь формат заголовков ссылок? Форма «url; rel=name,url;rel=name» кажется мне немного странной.

РЕДАКТИРОВАТЬ :Нашел этоhttp://tools.ietf.org/html/rfc5988#section-6.2, который определяет «стандартные» имена отношений

6
задан Marcos Scriven 25 July 2012 в 12:19
поделиться