JS函数中异常执行问题,怎样解决?

我写了个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是优先执行的,难怪代码会出现意想不到的问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值