这个“会话锁定”方法有一个共同的名称吗?

时间:2011-05-01 19:48:23

标签: php mysql session web-applications

在我的一个页面上,我让用户排队搜索条件,以便从第三方API查询。当他们正在构建队列时,我的站点正在后台进行查询(通过ajax),这样我就可以缓存响应,节省他们提交的时间。我在后台查询运行期间将会话变量$ _SESSION ['isloading']存储为true,并在完成后将其存储为false。

当他们提交时,结果页面在查询缓存结果之前等待$ _SESSION ['isloading']为false。与此同时,他们展示了一个进步轮。

在进行代码中的下一步之前,是否有使用会话本地“锁定”用户的技术的名称?我自己想出了这种方法,并想知道它是否是这个问题的常见(或好)解决方案,并在其他地方使用。

3 个答案:

答案 0 :(得分:1)

将它放在$ _SESSION将是一个浪费的努力。去过那里,完成了它并没有成功。

如果您将“搜索查询字符串”作为XHR的$ _GET变量(营销人员称之为Ajax)提供,那将会好得多。

答案 1 :(得分:0)

在我的脑海中,这听起来有点类似于一些较旧的论坛软件在后台执行论坛搜索的方式,并且可见页面会重复刷新,直到后台搜索完成。

我认为没有名字;我也完全相信这是一个很好的解决方案。正如stevecomrie指出的那样,你将遇到并发困难(除非会话变量的名称对于每个搜索查询都是唯一的。)

我会推荐一个XmlHttpRequest(正如teresko指出的那样,它并不是真的称为“AJAX”,呃!)而且你可以用Javascript简单地处理“等待”。

答案 2 :(得分:0)

我在IRC上问过这个问题(在freenode上给## php提供了帽子提示),他们建议我把搜索表单和搜索结果放在一页。然后,当他们完成搜索后,视图将改变而不是提交到下一页。这将消除跟踪“正在加载”状态的必要性。对我来说这似乎是一个更好的方法,它有任何问题吗?