Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 把饼干放在头上_Php_Head - Fatal编程技术网

Php 把饼干放在头上

Php 把饼干放在头上,php,head,Php,Head,我构建了一个PHP插件,在站点加载时创建两个cookie(如果cookie不存在的话) cookies的本质是存储要在站点内使用的屏幕宽度和密度,这就是为什么在加载站点内容之前必须创建cookies的原因 问题是我看到站点加载有相当大的延迟,因为cookies的创建阻止了站点加载 有人能看到有人优化我的功能以加快进程吗?还有其他的想法吗 public function cookie() { if(!isset($_COOKIE['screenwidth']))

我构建了一个PHP插件,在站点加载时创建两个cookie(如果cookie不存在的话)

cookies的本质是存储要在站点内使用的屏幕宽度和密度,这就是为什么在加载站点内容之前必须创建cookies的原因

问题是我看到站点加载有相当大的延迟,因为cookies的创建阻止了站点加载

有人能看到有人优化我的功能以加快进程吗?还有其他的想法吗

public function cookie()
    {
        if(!isset($_COOKIE['screenwidth'])) 
        {
            return "<script>
                        document.cookie='screenwidth='+document.documentElement.clientWidth+'; path=/';location.reload(true);
                    </script>";
        }

        if(!isset($_COOKIE['retina'])) 
        {
            return "<script>
                        var mediaQuery = '(-webkit-min-device-pixel-ratio: 1.5),\
                                          (min--moz-device-pixel-ratio: 1.5),\
                                          (-o-min-device-pixel-ratio: 3/2),\
                                          (min-resolution: 1.5dppx)';

                        if (window.devicePixelRatio > 1 || window.matchMedia && window.matchMedia(mediaQuery).matches) {
                            document.cookie='retina=yes; path=/';location.reload(true);
                        } else {
                            document.cookie='retina=no; path=/';location.reload(true);
                        }
                    </script>";
        }
    }
公共函数cookie()
{
如果(!isset($\u COOKIE['screenwidth']))
{
返回“
document.cookie='screenwidth='+document.documentElement.clientWidth+';path=/';location.reload(true);
";
}
如果(!isset($_COOKIE['retina']))
{
返回“
var mediaQuery='(-webkit最小设备像素比:1.5)\
(最小——moz设备像素比:1.5)\
(-o-min-device-pixel-ratio:3/2)\
(最小分辨率:1.5dppx)';
if(window.devicePixelRatio>1 | | window.matchMedia&&window.matchMedia(mediaQuery.matches){
document.cookie='retina=yes;path=/';location.reload(true);
}否则{
document.cookie='retina=no;path=/';location.reload(true);
}
";
}
}

为什么不在php的内置cookie功能中使用@MartinMandl我需要使用javascript来获得客户端屏幕宽度等。你不认为这是最好的方法吗?你的建议是什么?就我个人而言,当我看到所描述的性能受到影响时,我会尝试使用javaScript来确定屏幕,通知服务器(ajax,或者只是下一个post/get请求),并使用php设置cookie…你愿意创建一个小演示吗?在阅读了关于PHP cookie的文档之后,我不完全确定如何以这种方式设置cookie,或者至少不确定如何获取它的javascript值。