隐藏/显示内容时jQuery无意延迟

时间:2011-12-29 21:47:45

标签: javascript jquery

当您转到特定URL时,初始内容会被加载,然后它会解释url参数,然后内容会发生变化。

在我的本地机器上,这发生了“舔裂”,也就是说你看不出任何延迟。但是,如果您在大约5秒后转到该URL,则内容最终会隐藏并显示正确的内容。 js在下面,这是一个非常接近的小html片段。

示例网址:www.example.com/page1.aspx?nav = 2012?id = 113& pid = 2

HTML

  <div id="default">content</div>   
  <div id="mobile2012" style="display:none;">content</div>

的Javascript

var querystring = location.search.replace('?', '').split('?');
var queryObj = {};
for (var i = 0; i < querystring.length; i++) {
    var name = querystring[i].split('=')[0];
    var value = querystring[i].split('=')[1];

    queryObj[name] = value;
}
////////
var subNavDestination = queryObj["nav"];
////////
urlParams(subNavDestination);
function urlParams(subNavDestination) {
    var displayInformation;

    switch (subNavDestination) {
        case 'about': displayInformation = "AboutEarthquakeIns";
            break;
        case 'homeowner': displayInformation = "Homeowner2012Content";
            break;
        case 'renter': displayInformation = "Renter2012Content";
            break;
        case 'mobilehome': displayInformation = "Mobilehome2012Content";
            break;
        case 'condo': displayInformation = "Condominium2012Content";
            break;
        case '2011': displayInformation = "pdf2011";
            break;
        case '2012': displayInformation = "pdf2012";
            break;
        default: displayInformation = "GeneralContent";
    }

    if (displayInformation != "AboutEarthquakeIns") {
        //$('#PolicyTypes2012 .sideNavPolicyType').slideToggle();
        $('#PolicyTypes2011 .sideNavCoverage').slideUp();
    }

    if (displayInformation == "pdf2011") {
        controlContentVisibility("pdf2011");
        $('#PolicyTypes2011 .sideNavPolicyType').slideToggle();
        $('#PolicyTypes2011 .sideNavCoverage').slideUp();
        setActiveLink();
        setSelectedPolicyType();
        hideYearSubMenus(2012);
    }
    else if (displayInformation == "pdf2012") {
        controlContentVisibility("pdf2012");
        $('#PolicyTypes2012 .sideNavPolicyType').slideToggle();
        $('#PolicyTypes2012 .sideNavCoverage').slideUp();
        setActiveLink();
        setSelectedPolicyType();
        hideYearSubMenus(2011);
    }

    controlContentVisibility(displayInformation);
}

2 个答案:

答案 0 :(得分:0)

当您点击URL(我假设在远程站点)时,在解析/呈现之前,需要额外的时间来加载您将选择显示的div的内容。

答案 1 :(得分:0)

我的猜测是你已经将javascript作为单独脚本的一部分,即.js文件而不是html文件,你看到的延迟是浏览器下载该脚本的时间