为什么是窗口.FF的定位速度比Chrome快


Why is window.location way faster in FF than in Chrome?

我使用这段代码将人们重定向到一些url,这取决于他们选择的浏览器语言。

您将看到,如果他们使用的是德语浏览器,则不会发生任何更改。如果他们有英语、法语或西班牙语浏览器,他们将被重定向到正确的url。

这在浏览器会话中只发生一次,所以如果需要,他们可以从另一种语言到达德语主页。

<?php 
session_start();
if(!isset($_SESSION['visitedOnce'])){
    if(is_home() && ICL_LANGUAGE_CODE == 'de' ){
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
        switch ($lang){
            case "de":
                //echo "PAGE DE";
                break;
            case "en":
                //echo "PAGE EN";
                echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
                break;
            case "es":
                //echo "PAGE ES";
                echo '<script type="text/javascript">window.location = "http://www.google.es";</script>';
                break;        
            case "fr":
                //echo "PAGE FR";
                echo '<script type="text/javascript">window.location = "http://www.google.fr";</script>';
                break;        
            default:
                //echo "PAGE EN - Setting Default";
                echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
                break;
        }
    }
    $_SESSION['visitedOnce'] = true;
}
?>

在Firefox中工作正常,HTML不会加载,重定向会无缝地发生。

但是,在重定向发生之前,Google Chrome显示了难看的未样式的HTML块。

是否有办法防止使用这种javascript重定向?

谢谢!

在PHP中做重定向呢?然后你就不会看到难看的没有样式的HTML块了…请注意,在header('Location: http://www.google.***');之前没有输出。

<?php 
session_start();
if(!isset($_SESSION['visitedOnce'])){
    $_SESSION['visitedOnce'] = true;
    if(is_home() && ICL_LANGUAGE_CODE == 'de' ){
        $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
        switch ($lang){
            case "de":
                //echo "PAGE DE";
                break;
            case "en":
                //echo "PAGE EN";
                header('Location: http://www.google.com');
                exit;
                //echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
                //break;
            case "es":
                //echo "PAGE ES";
                header('Location: http://www.google.es');
                exit;
                //echo '<script type="text/javascript">window.location = "http://www.google.es";</script>';
                //break;        
            case "fr":
                //echo "PAGE FR";
                header('Location: http://www.google.fr');
                exit;
                //echo '<script type="text/javascript">window.location = "http://www.google.fr";</script>';
                //break;        
            default:
                //echo "PAGE EN - Setting Default";
                header('Location: http://www.google.com');
                exit;
                //echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
                //break;
        }
    }
    //$_SESSION['visitedOnce'] = true;
}
?>

然而,Google Chrome在重定向发生之前显示了难看的未样式的HTML块。有没有办法防止使用这种javascript重定向?

让你的HTML文档看起来像这样

<body style="display:none;">
...
<script>
    document.body.style.display = '';
</script>
</body>