我有一个PHP页面,我做的第一件事就是设置一个cookie。要设置此cookie中的数据,我必须进行几个数据库查找,XML查找和一些数学运算。在HTML的正文中,靠近顶部,我需要显示此cookie的值。
Cookie正在设置,但在第一次加载页面时,该值未显示。如果我刷新页面就会设置。我可以看到cookie实际上是通过Firebug设置的。
这几乎就好像,由于获取cookie值的开销,页面的其余部分正在进行加载,并且试图在值到位之前显示。
所以我的问题是,有没有办法“暂停”所有其他处理和输出,直到设置了cookie?我是ob_start的新手,但我想用我的set cookie功能包装会这样做,但这并没有解决它。
有什么想法吗?
答案 0 :(得分:3)
好吧,您可能希望查看ajax call via something like jQuery.
,而不是延迟页面加载这基本上允许你做的是,在ajax调用中设置cookie,当它返回时,你可以用信息的显示来更新DOM。那样:
答案 1 :(得分:1)
跟进我对这个问题的评论。
你应该建立一个这样的逻辑:
if(!isset($_COOKIE['yourcookie'])) {
// The cookie is not set
// Set the cookie and place the same data in $myCookie
} else {
// The cookie is set
// Take the data from the cookie and place it in $myCookie
}
// No the cookie data is always available in $myCookie
var_dump($myCookie);
答案 2 :(得分:0)
在下一次请求之前,没有PHP无法访问该cookie。
如果cookie不存在,您是否可以直接使用您在cookie中设置的数据?