jquery - 正确的分页方法是什么(特别是使用 JQuery 和 Jersey)

标签 jquery pagination jersey httpresponse

只想按照我的分页方法运行,在服务器端使用 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<User> currentPageResults;

这在响应中给出了以下 header :

Link: <http://localhost:8880/rest/users?page=0>; rel="prev", <http://localhost:8880/rest/users?page=2>; 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. 我的链接 header 格式正确吗?解析链接头 客户端似乎有点紧张。
  2. 这是正确/可接受的做法吗?我看了看 Jersey 响应过滤器,但这需要添加泽西特定的 模型类上的注释,这是我不想做的。
  3. 总可用页数如何?有没有标准化的方法 在信息中给出这个?如果我有总页数,我大概可以 完全删除 rel 链接,然后在客户端生成它们? 这是正确的吗?

顺便问一下,链接头的整个格式是如何产生的? “url; rel=name,url;rel=name”的形式对我来说似乎有点奇怪。

编辑:找到这个https://www.rfc-editor.org/rfc/rfc5988#section-6.2 ,它指定“标准”关系名称

最佳答案

假设您希望确保搜索引擎可以检索到这些页面,我建议您更改链接以删除查询字符串。

http://localhost:8880/rest/users/0

其中 0 在服务器端解析为所需的页码。就总页数而言,您将在服务器上知道您是否已到达用户列表的末尾。如果是这样,只需省略您的 nextLink 即可。同样,如果 currentPage == 0 则省略 prevLink。

您可以在此处查看此操作:http://www.autoquoter.com/aq/en/Blog/Archives

关于jquery - 正确的分页方法是什么(特别是使用 JQuery 和 Jersey),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11649082/

相关文章:

jquery - 在 Chrome 和 Firefox 上捕获 Backspace 是不同的

java - Tomcat + Jersey 产生 org.glassfish.jersey.server.ContainerException : java. lang.NoClassDefFoundError

java - 在 com.sun.jersey.guice.spi.container.servlet.GuiceContainer 中找不到合适的构造函数

jquery - 我应该将 jQuery 插件转换为使用 jQuery UI 的 Widget Factory 吗?

jquery - 将 JQuery getJSON 与包含的其他 JavaScript 一起使用会出现 ReferenceError

javascript - 网页通知栏类似于SO

api - Foursquare Venue API 和结果数量,以更有效的方式?

angularjs - 限制不工作

javascript - 我的内容超出了页面底部

java - 有没有办法让 Jersey 不让特殊符号成为 url 安全的?