2017-02-23 4 views
1

ページがキャッシュから来ているかどうかをチェックするOnPageShow(イベント)を設定したコードを記述しました。キャッシュからのページの場合は、同じページをリロードしてサーバーを起動します。しかし、これを行うと、画面の点滅の問題があります。理由は、ブラウザの「戻る」ボタンをクリックすると、まずキャッシュからのページがロードされて表示され、ロードが完了すると、ページを再度リフレッシュするOnPageShowメソッドに入ります。ちらつきの問題を避ける方法はありますか?ここで2つのイベントが発生したときのちらつきを避ける方法

は、コードは次のとおりです。

function RefreshloadWindow() 
{ 
    if(!(window.performance && window.performance.navigation.type == 2)) 
    { 
     console.log("In On Load"); 
     GetLatestBreadcrum(); 
    } 
} 
function GetLatestBreadcrum() 
{ 
    console.log("In Breadcrum function"); 
    var matches=[]; 
    var divElements=document.getElementById("breadCrumDiv").children; 
    console.log(divElements); 
    var j=0; 
    for(i=0;i<divElements.length;i++) 
    { 
     //console.log(divElements[i].tagName); 
     if(divElements[i].tagName=="A") 
     { 
      matches[j]=divElements[i]; 
      j++; 
     } 
    } 
    for(z=0;z<matches.length;z++) 
    { 
     console.log(matches[z]); 
    } 
    var lastElement=matches.length; 
    //matches[lastElement-1].click(); 
    window.name=matches[lastElement-1]; 
    console.log(window.name); 
} 
function IsPagePersisted(event) 
{ 
    if(event.persisted || window.performance && window.performance.navigation.type == 2) 
    { 
     //console.log("From Cache 2"); 
     var iLink=document.createElement('A'); 
     iLink.href=window.name; 
     GetLatestBreadcrum(); 
     iLink.click(); 
    } 
} 

と体タグは以下の通りです:

<body onpageshow="IsPagePersisted(event)" onload="RefreshloadWindow()" > 
+0

このコードのコードをご記入ください。 –

+1

サイドノート - あなたの投稿を更新すると、コメント作成者は自動的にpingされません。 pingしたい場合は(良い練習)、@ –

+0

okとコメントを追加してください。私はそれについて知りませんでした。お知らせしてくれてありがとう。 –

答えて

0

ページを表示したくない場合は、最初にあなたはbodyタグに "display: none;"を追加することができますし、リロード後にそのスタイルを削除します。

+0

はい、あなたは正しいです。しかし、私はキャッシュエントリが来たときにうんざりになるフィルタメカニズムを設計しました。だから私は少なくともフィルタの世話をするためにページをリロードする必要があります。ページがリフレッシュされるまで、フィルターを処理するためにサーバーにヒットしません。 –

関連する問題