【发布时间】:2010-12-23 04:07:20
【问题描述】:
我目前正在构建一个网站,该网站可以获取 youtube 视频和 flickr 图片,并允许用户在网站上对其发表评论。在拥有自己的评论系统的同时,该网站还可以选择使用 youtube/flickr 登录,以使用他们的用户名在 youtube 或 flickr 上发表评论。
我这样做是通过打开一个弹出窗口(真正的弹出窗口,而不是 jquery 类型的弹出窗口),在他们登录后关闭弹出窗口并将他们的令牌存储在 PHP $_SESSION 中。问题是,我有很多关于 jQuery 的事情,我想让他们在不刷新的情况下登录后在作为网站访问者评论和评论 Flickr/YouTube 之间切换。
基本上,我需要一种方法来检测弹出窗口何时关闭,这样我就可以向 PHP 文件发出请求,该文件会告诉我用户是否在 $_SESSION 中保存了令牌并隐藏评论表单中的姓名和电子邮件框,因为它们只需要输入框。
另一种方法是在他们打开弹出窗口时触发 setInterval(),例如每 2/3 秒检查一次 $_SESSION,但我认为这不是最好的方法。理想情况下,我希望用户关闭弹出窗口后立即起作用的东西。
更多详情: 我正在使用http://swip.codylindley.com/popupWindowDemo.html 来显示弹出窗口 两个函数的回调脚本在将令牌存储在 $_SESSION 之后执行 self.close() 用户可以同时使用 Flickr 和 Youtube 登录(但我认为这不再重要了)。 作为访问者发表评论与 Flickr/Youtube 用户之间的区别在于,作为访问者,您拥有三个字段(姓名、电子邮件、消息),而在其他情况下只有一个字段(消息) 我会检查页面何时加载,因此如果用户此时刷新页面,一切正常,但我希望他不必这样做,或者至少它会自动刷新。
最后,我很乐意使用其他选项,只要用户不必离开页面,刷新自己即可在访问者和登录用户之间切换。在页面中使用 jQuery,所以如果它是基于 jQuery 的解决方案,那就更好了。
抱歉,帖子太长了,找不到缩短它的方法。
感谢大家的帮助!
编辑
setInterval() 带有一个调用 PHP 脚本来检查 $_SESSION 变量的函数,就像一个魅力,在性能或用户体验方面并没有我预期的那么糟糕。不过,如果有人能想到更好的解决方案,我愿意接受。
谢谢!
【问题讨论】:
-
我浏览了您的评论,但使用 ajax 来检查 cookie 集是可能的并且可以完成。我在使用间隔之前已经完成了。
-
我认为这是可能的,但我更愿意在用户关闭弹出窗口时这样做,而不是经常这样做。当用户期望时立即更改表单非常重要,否则可能会被误解为错误行为,我猜......
-
@Glycerine 我尝试以 setInterval 方式进行操作,效果很好。感谢您证实我的理论,我想我只是懒得做测试才问。
-
没问题,伙计。我们都去过那里 - 这是可能有灰色区域并迫使您将头发拉出几个小时的事情之一。
-
@Glycerine 是的,我也处于倦怠期的尾声,所以我想的很慢,但是 youtube/flickr 的结果很好,网站会发布一个链接上线:)
标签: php jquery ajax session popup