Javascript - 缓存和 cookie 问题

Javascript - Issue with caching and cookies

JavaScript 和缓存页面上的 Cookie 问题让我很沮丧。

我得到如下JS代码:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}
    if (!getCookie("lang") == "{{Lang}}"){
        document.reload();
    }

{{Lang}} 在后端用 PHP.

替换为完全相同的 cookie
$template = str_replace("{{Lang}}", $lang, $template);

但这并不真正相关,因为该部分按预期工作。

问题是当用户访问缓存页面时。

前面说的JS变成了

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}
    if (!getCookie("lang") == "FR"){
        document.reload();
    }

问题是页面不会刷新,即使 Chrome 开发工具非常清楚地表明 cookie lang 设置为 "EN",而不是 "FR" .

是否有解决此缓存问题的方法?

重新加载方法接受一个指示强制缓存刷新的布尔标志。所以尝试:

document.reload(true);

JS中的不相等比较是!=,所以

getCookie("lang") != "FR"