存储首选主题的最佳方法?

时间:2018-06-30 05:30:58

标签: javascript php cookies

我为我的网站创建了“更改主题”功能。一切正常,直到我访问该网站几天后,它一直是我的默认主题。需要重新加载主题才能生效。

我将Cookie存储在所选主题的变量中,然后在每次加载网站时检查该变量,以确定要加载的样式表。

示例: 如果用户选择“深色主题”

document.cookie = "theme=dark; expires=Tue, 18 Dec 2018 12:00:00 UTC"

,如果用户选择“浅色主题”

document.cookie = "theme=light; expires=Tue, 18 Dec 2018 12:00:00 UTC"

我想知道这是否有缺点,是否有更好的方法来存储cookie以外的首选主题变量?

我怀疑发生这种情况的原因是在浏览器解释cookie之前呈现了我的PHP条件语句。我对此可能有误,如果是这样,请告诉我。

这里有个要点:服务器端和客户端(PHP和JavaScript)都没有错误。

编辑:
问题在于,即使存储的cookie具有“深色主题”,它仍将使用默认的“浅色主题”。它需要刷新页面才能显示深色主题。没有错误。

这是我在标头中使用的PHP验证,以确定cookie变量

if(isset($_COOKIE['theme']) && $_COOKIE['theme'] == 'dark'){
    echo '<link rel="stylesheet" type="text/css" href="dark-theme.css">';
}else{
    echo '<link rel="stylesheet" type="text/css" href="light-theme.css">';
}

注意:我没有缓存任何内容,并且浏览器的网络控制台也没有缓存的版本。

0 个答案:

没有答案