我写了个JS函数,目的是当cookie中没有iswssupport的值时,判断浏览器是否支持websocket并写入cookie。
代码如下:
< script type=" text/JavaScript">
var iswssupport = "<?php echo $_COOKIE[" iswssupport"] ?>"
function wstest()
{
if ( iswssupport == "yes")
{
return(true);
}
else
{
if (" WebSockets" in window)
{
<?php setcookie(" iswssupport"," yes", time()+3600*24*366);?>;
return( true);0
}
else
{
<?php setcookie(" iswssupport"," no", time()+3600*24*366);?>;
return( true);
}
}
}
但是在实际中,一旦调用这个函数,尽管浏览器支持websocket,会在执行完将yes写入cookie后继续执行用no覆写cookie。请问这是什么问题导致的,不胜感激
php代码会先于js代码执行,不要想当然的用js的流程控制语句控制php代码。
正确做法是js判断后成功则异步调用php接口设置cookie失败则不调用。
那是不是可以传参给另一个php文件,让这个php在后台设置好cookie?
前端js可以直接设置cookie,资源代下载不需要后台代码
我晓得,但是js设置cookie容易,读取起来就麻烦了。尤其是cookies多了之后,要循环很多次才能得到每一个cookie的值,毕竟不如PHP简练
对,直接调另一个php就好了。最好不要把js和php混用
啊,我是个傻子
直接js设置cookie,php读取cookie就好了嘛
好的,感谢。因为刚接触不久,所以不知道php是优先执行的,难怪代码会出现意想不到的问题.