2010-07-14 126 views
3

我在Startpage上有一个详细搜索表单,用户有许多可用的搜索选项。搜索参数

什么是保持搜索paramets用户会话的最佳实践。 哪些优点和缺点,如果把它们放在

  • URL
  • 会议
  • 饼干

应该用什么作为最佳实践。

回答

0

我想说一个会话是最好的选择。如果您有多个页面,则很可能需要保持一些全局状态 - 另一种方法是用户在转到下一页时重新提交所有以前的数据。

也就是说,你不能仅仅使用依赖于cookie的会话来存储会话标识符,至少不会有一些额外的数据实际上在几个页面之间作为隐藏字段或URL参数传递。

问题是,只有一个cookie,您将不会有网络对话,您有一个全局cookie,它在浏览器中的所有选项卡/窗口之间共享。如果用户打开一个新标签并开始新的搜索,则会话cookie将被替换,而另一个标签中的会话将会丢失。

因此,无论你:

  • 传递会话ID的URL,而不是使用一个Cookie(注意会话固定的,虽然)。
  • 包含标识对话的额外GET参数或隐藏字段。
1

我打算胖了点Cookie,因为URL持久化会让你的所有网址变得丑陋而且对于链接共享来说很差;不仅如此,有些设备可能会阻碍很长的网址(你说有很多选项)。无论如何,会话持久性都需要Cookie。或查询字符串持久性来维护状态(回到链接共享和丑陋的URL问题)。

用一个cookie可以存储大量的数据(当然,在合理范围内),并不会影响您的网址。

但是 - 如果搜索参数的持久性是你的应用是至关重要的,那么你应该有一个后备检测饼干是否可用,和度假胜地,如果不为URL的持久性。

1

最佳实践真的取决于具体的方案(包括商业案例,编程语言等)。不过,这里有一些高水平的优点/缺点。

URL优点:容易读/写
URL缺点:用户可以轻松地操纵它们造成意想不到的结果,讨厌的网址

会议利弊:应该是很容易读/写程序(取决于语言),不必担心URL中的参数
会话缺点:占用更多的内存(根据数据可能可以忽略不计)

Cookie的利弊:不占用内存
Cookie的利弊:必须读/写文件时,用户可以随时删除浏览器(1块饼干为内共享的cookie(会话中),饼干任何数量的会话)

+0

你对URL的看法听起来不太好,因为搜索查询必须**总是**处理“服务器端”,否则即使有会话或cookie也可能是危险的,我想。 – BrunoLM 2010-07-14 14:43:58