代码之家  ›  专栏  ›  技术社区  ›  David Weinraub

大表单搜索结果的分页技术

  •  1
  • David Weinraub  · 技术社区  · 14 年前

    在网页中创建搜索表单时,我通常使用get方法。这使得结果 URI Addressable . 它还可以以标准方式方便地对结果进行分页。

    但是有大量选项和相当长字段名的表单呢?使用get请求意味着结果页面的URL实际上可以破解 practical URL length limit of 2KB .

    如果我改为使用post,我会超过url长度限制。但是我失去了URI的可寻址性。此外,所有分页链接都需要重新实现为小子窗体,所有搜索参数数据都存储在隐藏字段中;使这些链接作为链接操作将需要类似onclick处理程序的东西,这使得它们只有在启用客户端脚本时才可用。

    那么,对于长搜索表单的建议是:

    • 保持URI可寻址性
    • 允许合理的分页链接
    • 不要打破实际的URL 2KB长度限制

    我唯一想做的就是坚持使用get,但是减少字段名的长度,这样我们就不太可能突破URL限制。

    你在想什么?非常感谢。

    1 回复  |  直到 14 年前
        1
  •  0
  •   FinnNk    14 年前

    你需要做的是使用post方法——如果你的URL超过了限制,你就无法绕过这个问题(尽管你可以通过缩写名称和值来延迟不可避免的事情)。

    通过发帖,然后将客户机重定向到GET,为了使事情可寻址,您可以将搜索服务器端存储在一个键上,然后在GET上检索它(例如,从内存或数据库),或者您可以将这些键编码为单个querystring键或捕获行为的较小数量的键。由此产生的响应将是可预订的等。

    分页非常简单——只需在表单集合中查找导航按钮的存在或不存在,并相应地作出响应。