JavaScript+IFAMMEによるページ分割ロード


前言:
あまり長く読むと興味に影響を与えるため、コードはあまり貼らないので、ソースコードに合わせて読むほうがいいです.そうしないと、いくつかの場所が少し分かりません.
質問?
往々にしてプロジェクトの中で高いページが表示され、ロード速度を考慮するために、私たちは遅延ロードを使用します.最初は画像の遅延ロードだけを行っていましたが、その後、1つのページのロードは画像だけではないので、ページ全体に表示をロードする必要があります.
全体的な考え方は以下の通りです.
スクリーン分割が最も簡単なのはページを単一のIRAMMEに切断することであることを考慮し,ここではこのような方法を用いてこの問題を解決する.
まず2つのJS要素を紹介します①
参照
clientHeight
読み取り専用プロパティで、ウィンドウのドキュメント表示領域の高さと幅をピクセルで宣言します.
ここでの幅と高さには、メニューバー、ツールバー、スクロールバーなどの高さは含まれません.
contentDocument
contentDocum entプロパティは、HTMLオブジェクトでフレームワークに格納されているドキュメントを返します.
返されるオブジェクトは、すべての標準的なDOMメソッドによって処理され得る.
問題を解決するプロセス全体で、最も厄介なのはifreameの適応高さのブラウザ互換性の問題です.
互換性といえば、ブラウザ間の互換性が最も一般的なのはJS要素が互換性がないことです.
例えば、FFが利用できる要素IEは使えないが、IEが使えるのは、FFに限って使えない.
もう1つはbodyなどのHTMLタグの画素の違いですが、
例えばiframeの高さはすべて100で、IEでちょうど良くて、FFで明らかに十分ではありません.
互換ブラウザでも良い方法が見つからない以上、最も直感的で簡単なのは複数の案です.
ブラウザ互換性におけるHTMLタグの問題
var frame= document.frames?document.frames[i].document:frame.contentDocument;

これによりdocumentが得られ、幸いなことにclientHeight要素と互換性があります.
これにより、汎用js要素を使用してiframeの高さを取得することができます.
frame.height = frame.body.clientHeight

クライアントブラウザのタイプを取得し、ピクセルの違いの問題を解決するにはどうすればいいですか?

if(navigator.userAgent.indexOf("Firefox")>0) { // Mozilla, Safari ..
  frame.height = frame.body.clientHeight+20;
} else if (navigator.userAgent.indexOf("MSIE")>0) { // IE
  frame.height = frame.body.clientHeight+10;
} 

フレームワークの適応の高さの時、私は1つの問題にぶつかって、IEがifreameの高さまで統計して適応することができなくて、FFはできて、IEがiframeをロードしてすぐに高さを得ることができないのではありませんて、それから私はiframe onload事件でinitHeight()をトリガすることを試みて、結果は本当にIEの問題②です.
<iframe class="iframe" id="frame3" onload="initHeight()" src="about:blank" width="100%" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>

ソースの一部:
拡張読書:
これに基づいてこの機能を拡張したい場合は、スクロールバーイベントを利用することができます.
たとえば、現在の画面のデータを優先的にロードします(ユーザーがスクロールバーをローエンドに直接ドラッグした場合)
function initEvents(){
  $(window).bind('scroll', function() {
     var margin_top = $(document).scrollTop(); //          
  }
}

①javascriptのオブジェクト、属性.
②この問題は個人的な推断にすぎず、信憑性が足りないが、いくつかの疑いがある.
Thank of:
ケゴ、継超同級生の指導と助けに感謝します.
作成者:
郝世博@鄭州昇博世紀
メールアドレス:[email protected]
ここにはまだ多くの不足があるので、多くの批判をして、批判すると同時に欠陥を指摘することを忘れないでください.