setInterval和clearInterval在页面加载时启动,并在基于ajax的站点上离开页面时停止

时间:2015-07-21 08:08:15

标签: javascript jquery ajax setinterval clearinterval

我目前的代码。但是当我加载另一页时,计时器不会停止。当用户在messages.php上时,我需要刷新消息和对话 我目前的代码。但是当我加载另一页时,计时器不会停止。当用户在messages.php上时,我需要刷新消息和对话 我目前的代码。但是当我加载另一页时,计时器不会停止。当用户在messages.php

上时,我需要刷新消息和对话
    function get_page(link){
$jQuery("body").scrollTop(0);
$jQuery.ajax({
    type: "POST",
    cache: false,
    async: false,
    url: link,
    data: "norefresh=1",
    success: function(data){
        window.history.pushState("", "", link);
        $jQuery("div.content").html(data);
        clearInterval(messagesref);
        clearInterval(dialoguesref);
        if(link.indexOf("messages.php")>=0){
            var messagesref = setInterval(function(){
                var link = window.location.href;
                var href = 'action/get'+link.substr(link.indexOf("messages.php"),30);
                var lmid = $jQuery('div.message').last().attr('id');
                $jQuery.ajax({
                    type: "POST",
                    url: href,
                    dataType: 'json',
                    data: 'lmid='+lmid,
                    success: function(response){
                        $jQuery.each(response, function(i,message) {
                            if(!$jQuery('#'+message.id).length){
                                if(message.from){var mside='right i';}else{var mside='left';};
                                $jQuery('div.messages').append('<div id="'+message.id+'" class="message '+mside+'" title="'+message.date+'">'+message.text+'</div>').scrollTop(10000);
                            };
                        });
                    }
                });
            },1000)

            var dialoguesref = setInterval(function(){
                var link = window.location.href;
                var link = link.replace("messages","action/getdialogues");
                $jQuery.ajax({
                    type: "GET",
                    cache: false,
                    async: false,
                    url: link,
                    data: 'q='+$jQuery('div.messages_users>input[type=text]').val(),
                    success: function(data){
                        $jQuery('div#dialogues').html(data);
                    },
                    error: function(data){
                    }
                });
            },5000)
        }
    }
});

};

0 个答案:

没有答案