Можно ли загрузить 2 разных файла PHP в 1 деление после определенного нажатия на две разные кнопки в одной функции setinterval через каждые 10 секунд? - PullRequest
1 голос
/ 21 августа 2011

Я пытаюсь загрузить 2 разных php файла через определенный интервал времени, когда пользователь нажимает.вот фрагмент кода, помогите мне в этом.

function load_recent_popular(recent) {
    if( typeof load_recent_popular.counter == 'undefined' ) { 
        load_recent_popular.counter = 0;  
    }
    if(recent==1) {
        var loadUrl = "1.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 0;  
    }
    else {
        var loadUrl = "2.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 1;  
    }
    handle = setInterval(function() { 
        if(load_recent_popular.counter == 0) { 
            loadUrl = "1.php";  
        }
        else if(load_recent_popular.counter == 1) { 
            loadUrl = "2.php";  
        }
        $("#box15").load(loadUrl); 
    }, 10000);  
}

<a onClick="load_recent_popular(1)">Load 1</a><a onClick="load_recent_popular(2)">      Load 2</a>

<div id="box15"></div>

Я попытался включить 2 разных интервала с 2 разными дескрипторами для каждого и вставил модуль, чтобы очистить 1 интервал перед запуском другого, но он не работает, так что еслиУ кого-нибудь тоже есть решение, пожалуйста, поделитесь.

1 Ответ

2 голосов
/ 21 августа 2011

В конечном итоге вы запустите несколько таймеров, но все будет в порядке. При возникновении проблемы с таймером вы можете сохранить идентификатор таймера, используя .data на #box15, а затем вызвать clearTimeout, чтобы остановить его перед началом нового. Примерно так:

function load_recent_popular(recent) {
    var $box15 = $('#box15');
    var timer  = $box15.data('lrp_timer');
    if(timer)
        clearInterval(timer);

    if( typeof load_recent_popular.counter == 'undefined' ) { 
        load_recent_popular.counter = 0;  
    }
    if(recent==1) {
        var loadUrl = "1.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 0;  
    }
    else {
        var loadUrl = "2.php"; 
        $("#box15").load(loadUrl); 
        load_recent_popular.counter = 1;  
    }
    $box15.data('lrp_timer', setInterval(function() { 
        if(load_recent_popular.counter == 0) { 
            loadUrl = "1.php";  
        }
        else if(load_recent_popular.counter == 1) { 
            loadUrl = "2.php";  
        }
        $("#box15").load(loadUrl); 
    }, 10000));
}

И живая демонстрация техники (более короткий интервал времени, без AJAX): http://jsfiddle.net/ambiguous/MagL4/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...