当你去到一个特定的URL那里的初始内容被加载,然后它解释的url参数,然后内容改变。隐藏/显示内容时jQuery无意的延迟
在我的本地机器上发生这种“l split分裂”,又如此之快,你看不到任何延迟。但是,如果您在大约5秒后转到该URL,内容将最终隐藏并显示正确的内容。 js在下面,这里有一个非常接近的html代码片段。
例如URL: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);
}
重新考虑你的结构。为什么要将所有这些数据提供给客户,然后隐藏大部分数据?效率低下,肯定会导致不良的用户体验。 – 2011-12-29 22:08:33
此外,您的查询字符串语法不正确。应该永远不会超过一个问号。 – 2011-12-29 22:10:14
有一个内容管理系统与我无法控制的查询字符串参数混淆,这就是为什么它有两个?至于为用户提供所有这些内容......这是90%的文字,我正在努力避免有多页废话。谢谢你的想法。 – BRogers 2011-12-29 22:27:29