繁体   English   中英

替换在前一个 div 中加载的动态创建的 div/停止运行页面

[英]replace dynamically created div/stop running page that was loaded in the previous div

我有一个使用 javascript 动态加载的 page1,在该页面上我有一个 setTimeout,每 5 秒检查一次新消息,发生的问题是,如果有新消息,它应该用 page2 替换 div,完全关闭page1 但不幸的是,即使 page2 替换了旧的 div,page1 上的计时器仍在工作,我应该如何关闭与 page1 的连接,以便在 page2 在 div 上时计时器停止运行?

第1页

<!DOCTYPE html>
<html>
<head>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
    <script type="text/javascript">
        function carregapagina($pagina){
            $.ajax({
                url: $pagina,
                type: 'GET',
                dataType: 'html',
                data: "",
                success: function(content){
                    $("#DisplayDiv").html(content);
                }  
            });
        }

        function atualizadados(){
            $(document).ready(function(){
            $.ajax({        
                    dataType: 'json',   
                    url: 'comando.txt',
                    success: function(data){
                        switch (data.comando){
                            case "teste1":
                                carregapagina('page2.php');
                                break;
                        }
                    }
                });
                setTimeout('atualizadados()', 5000);
            });
        }

        atualizadados();

    </script>
</head>
<body>
<div id="DisplayDiv">
    <?php echo 'PAGINA 1 carregada com sucesso!'; ?>
</div>
</body>
</html>

第2页

<?php

echo '<h1>PAGINA 2 carregada com sucesso!</h1>';

?>

comando.txt

{"comando":"teste1"}

你必须在变量中捕获超时:

    switch (data.comando){
                        case "teste1":
                            clearTimeout(timer);
                            carregapagina('page2.php');
                            break;
                    }
                }
            });
            var timer = setTimeout('atualizadados()', 5000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM