2011-12-29 12 views
1

特定のURLに移動すると、最初のコンテンツが読み込まれ、urlパラメータが解釈されてコンテンツが変更されます。私のローカルマシン上jQueryコンテンツの表示/非表示時の意図しない遅延

これは別名とても速くあなたが任意の遅延を見ることができない、「lickety分割を」が起こります。しかし、約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); 
} 
+0

そのスクリプトをダウンロードするには、ブラウザに要する時間です。なぜこのデータのすべてをクライアントに提供し、そのほとんどを隠すのでしょうか?効率が悪く、望ましくないユーザーエクスペリエンスをもたらすことは間違いありません。 –

+0

また、クエリ文字列の構文が正しくありません。決して複数の疑問符があるべきではありません。 –

+0

コンテンツ管理システムでは、私が制御できないクエリ文字列paramsを混乱させています。そのため、2つの?があります。このコンテンツをすべてユーザーに提供することに関しては、90%のテキストであり、私は複数のページを持つことを避けようとしています。あなたの考えをありがとう。 – BRogers

答えて

0

あなたは(私は、リモートサイトで想定しています)URLを打つときは、目をロードするために必要な余分な時間がありますあなたが選択するdivの内容は、解析/レンダリングする前に表示されます。

+0

これは実際にページでレンダリングされるので、私はこれがそうではないと思います。 – BRogers

+0

すべてのコンテンツが最初に表示されないようにしましたが、要求されたコンテンツのみが表示されていますが、まだ遅いです。 – BRogers

0

私の推測では、htmlファイルをファイルではなくすなわち.jsファイルあなたが別のスクリプトの一部としてのJavaScriptが含まれているということであり、あなたが見ている遅延があなたの構造を再考

+0

インラインであっても、私はまだ同じ問題があります。 – BRogers

+0

これは、何をすべきか分かっているようで、内容を切り替える前に、すべてがすべてaspxページのすべての読み込みを完了するまで待っています。この難しい部分は、デフォルトのコンテンツが最初のものの1つとして読み込まれるということです。余分なインクルードファイルを削除することで、私は半分になった。 – BRogers

関連する問題