在IE9上同时进行测试时有一些奇怪的滞后

时间:2013-05-13 14:50:18

标签: javascript jquery internet-explorer lag

我有简单的代码示例:

<?php 

error_reporting(E_ALL | E_STRICT);

if (isset($_POST['test'])) {
    $data = array('test');    
    echo json_encode($data);
    exit;
}    

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
    <script type="text/javascript">

    $(document).ready(function() {

        var inCheck = false,
            setIntervalId = 0;

        function check() {
            if (inCheck) {
                console.log('inCheck!');
                return;
            }
            inCheck = true;
            var random = "noCache=" + (new Date().getTime()) + Math.random(); 
            $.ajax('/?' + random, {
                dataType: 'json',
                type:'POST',
                data: {'test': 1},
                success: function() {
                       console.log('ok');
                       inCheck = false;
                },
                error: function() {
                       console.log('error');
                       inCheck = false;
                }
            });    
        }

        function setCheck() {
            clearInterval(setIntervalId);        
            setIntervalId = setInterval( check, 10000 );
        }

        setCheck();

    });

    </script>    
</body>
</html>

我在本地Web服务器(Apache 2.4,PHP 5.4,Win7)上启动它。当我只使用Firefox 20.0.1时,没关系。我收到消息'确定'并且没有滞后。当我试图在Firefox和IE9上同时启动这个例子时,我得到了奇怪的时间滞后。在萤火虫中,我看到超时4-5秒(时间通常约为3-4毫秒)。当我在Firefox和上一次Opera中运行此测试时 - 它再次正常。所以问题与IE9有关。你能帮我吗 ?问题的根源是什么?为什么我看到这么奇怪的行为?提前谢谢。

0 个答案:

没有答案