用于简单Ajax加载页面的计时器

时间:2014-12-09 20:37:17

标签: javascript php jquery html ajax

有一个simple ajax用于将内容加载到页面中。 我想要的是加载的内容在显示在页面上之前等待一段时间。 (在淡入之前) 我尝试使用jQuery的.delay()函数后淡出#body但它没有用。 有人能指出我正确的方向吗?

提前感谢您的时间

JS

var default_content="";

$(document).ready(function(){

checkURL();
$('ul li a').click(function (e){

        checkURL(this.hash);

});

//filling in the default content
default_content = $('#pageContent').html();


setInterval("checkURL()",250);

});

var lasturl="";

function checkURL(hash)
{
if(!hash) hash=window.location.hash;

if(hash != lasturl)
{
    lasturl=hash;

    // FIX - if we've used the history buttons to return to the homepage,
    // fill the pageContent with the default_content

    if(hash=="")
    $('#pageContent').html(default_content);

    else
    loadPage(hash);
}
}


function loadPage(url)
{
url=url.replace('#page','');
$('#body').hide ();
$('#loading').css('visibility','visible');


$.ajax({
    type: "POST",
    url: "load_page.php",
    data: 'page='+url,
    dataType: "html",
    success: function(msg){

        if(parseInt(msg)!=0)
        {
            $('#pageContent').html(msg);
            $('#body').fadeIn( 'slow' );
            $('#loading').css('visibility','hidden');
        }
    }

});

}

PHP
    

if(!$_POST['page']) die("0");

$page = (int)$_POST['page'];

if(file_exists('pages/page_'.$page.'.html'))
echo file_get_contents('pages/page_'.$page.'.html');

else echo 'There is no such page!';
?>

2 个答案:

答案 0 :(得分:0)

你想要setTimeout Javascript函数。

setTimeout(function(){
    $('#pageContent').html(msg);
    $('#body').fadeIn( 'slow' );
    $('#loading').css('visibility','hidden');
}, 5000);

这将等待设置内容5秒。

答案 1 :(得分:0)

您可以使用setTimeout:

setTimeout(checkURL(/* value to pass */),250);

请不要引用对函数的调用,因为“”中的内容将作为字符串处理,而不是函数调用。