我正在一个大网站上工作,并在该网站上有一个搜索模块。搜索是通过使用大量用户提交的值完成的,因此在分页中,我必须将所有这些数据传递到下一页,并将值附加到url使url非常大。我应该使用javascript进行页面提交吗?
Sso我该如何解决这个问题?我打算使用基于JavaScript的页面提交(POST),隐藏字段中的所有值到下一页,以读取下一页中的所有值。
它会导致任何问题?或者我应该使用数据库来保持搜索标准?
我正在一个大网站上工作,并在该网站上有一个搜索模块。搜索是通过使用大量用户提交的值完成的,因此在分页中,我必须将所有这些数据传递到下一页,并将值附加到url使url非常大。我应该使用javascript进行页面提交吗?
Sso我该如何解决这个问题?我打算使用基于JavaScript的页面提交(POST),隐藏字段中的所有值到下一页,以读取下一页中的所有值。
它会导致任何问题?或者我应该使用数据库来保持搜索标准?
为了使用分页进行可靠的搜索,我们需要做的比平常多一点。
我们需要处理以下情况。
一旦搜索完成,用户可以选择做浏览器前进和后退。在这里,如果您在每个页面上进行表单提交,这将是一个超载。另外,如果用户按下浏览器刷新按钮,则会不必要地提醒他数据正在提交。
在一个大型数据库上搜索有很多标准是昂贵的。因此,优化很重要。
所以,你应该不做到以下几点:
因此,对于你的情况,你可以做到以下几点:
使用隐藏字段和POST方法应该也可以,除非您能够在下一页右侧获取它们。
为了补充Sarfraz的答案...
这是没有必要使用JavaScript来进行POST。
<form action="destination_url" method="POST">
...
</form>
我的计划是在用户点击分页编号(1,2,3,4 ...)时提交页面,这些元素必须是链接,我的计划是在有人点击页面时提交页面,因为那些链接我们必须调用一个javascript函数来提交页面, – milan 2010-07-22 08:30:16
我想创建一个服务器端的对象,可能与后端数据库是由不同的页面更新。
这是我认为最清楚和最简单的解决方案。通过post或者javascript或者cookie来给页面提供参数也能起作用,但这对我的经验来说更是一个怪癖。
此外,如果搜索查询非常复杂以至于需要多个页面才能创建它,那么用户可以将所有数据存储在服务器上,以便他可以通过在不同的页面。
当初始搜索被触发时,我会在服务器上的某种会话存储中存储所有搜索标准。
对于分页,我会从会话存储检索标准,然后只显示适当的结果。此外,我还会在分页链接中添加某种关键字(因此这将是唯一隐藏的后期字段),在这种关键字下可以找到搜索标准。
即使会话是每个用户,您可能会在同一个会话中打开多个搜索窗口,但您不想将它们与分页混淆。
你有一个cookie的4K。够了吗? – mplungjan 2010-07-22 08:26:22
如果我将所有用户用户提供的值存储在cookie中,它会好吗? – milan 2010-07-22 08:28:33