代码之家  ›  专栏  ›  技术社区  ›  mipadi

在URL中“嵌入”页码的最佳方法是什么?

  •  3
  • mipadi  · 技术社区  · 15 年前

    我正在使用django开发一个博客应用程序。当前,URL /blog/ 显示博客的首页(前五篇文章)。然后访问者可以浏览或“浏览”博客条目。此部分映射到 /blog/browse/{page}/ 在哪里 page 当然,它是一个整数,指定应该显示哪些博客条目的“页面”。

    不过,我突然想到,也许“page number”应该是querystring的一个属性(例如, /blog/browse/?page=2 ,因为浏览页面的内容不是静态的(即,只要我添加另一篇文章, /blog/browse/2/ 会有不同的内容 之前 添加了帖子)。这似乎就是像stack overflow和reddit这样的站点的工作方式。例如,当对堆栈溢出问题进行分页时, "page" attribute 使用;同样,Reddit使用 "count" attribute .

    扩展这个思路,我意识到我使用相同的模板来呈现 博客/ /blog/browse/ ,因此使用类似 /blog/?page=2 浏览博客的内容。

    有什么建议吗?有没有一种“标准”的方法,或者至少有一种“最佳实践”的方法?

    3 回复  |  直到 15 年前
        1
  •  3
  •   nezroy    15 年前

    我更喜欢使用get url参数,比如url?PG=γ。这是非常常见的,并且为用户提供了一个关于正在发生的事情的标准视觉线索。例如,如果我想给其中一个页面加书签或建立一个外部链接,我知道,不用考虑我可以删除pg参数来指向“最新”的首页索引。嵌入后,这就不那么明显了…我是否要去掉参数?我总是要把它设为1吗?它是完全不同的基本URL吗?对我来说,通过get参数进行分页会使URL更加合理,因为如果省略参数并且参数不影响基URL,则默认值是可以接受的。

    此外,虽然我无法证明,但它给了我一种温暖模糊的感觉,即谷歌有更好的机会了解该页面内容的性质(即,它是一个将索引分页为更多数据,并可能经常更新),而不是嵌入在URL中的页面,这将更加不透明。

    也就是说,我会说这是99%的个人偏好,我非常怀疑是否存在真正的功能差异,所以选择更容易的,更适合你当前做事方式的东西。

    编辑:忘了说我的观点是特定于姜戈的…我有一些django应用程序,所以我比较熟悉它们构建URL的方式,我仍然在这些应用程序中使用“pg”get参数,而不是直接将其嵌入到URL中。

        2
  •  4
  •   Jeff Bauer    15 年前

    就我而言,解决这个问题的最佳通用方法是 django-pagination 实用工具。它非常容易使用,而且您的URL应该具有您想要的格式。

        3
  •  0
  •   cdeszaq Sudhir N    15 年前

    好像有两件事发生了。一个静态页面,不会更改,可以用于永久对齐,如一篇文章,以及一个经常更新的动态页面。你没有理由不能两者都用。URL重写应该可以让这个很好地工作。没有理由让实现控制接口,总是至少有一种方法可以剥皮每只猫。