JavaScriptの遅延読み込み技術(lazyload)の簡単実装_javascriptスキル
1. はじめに
遅延ロード テクノロジ (lazyload と呼ばれる) は、Web ページのパフォーマンスを最適化するための JS プログラマ向けのソリューションです。たとえば、Google の画像検索ページ、Thunder ホームページ、淘宝網、QQ スペースなどです。したがって、Lazyload テクノロジを習得することは良い選択です。jquery プラグインの Layload 公式 Web サイト (http://www.appelsiini. net/projects/lazyload) は、新しいバージョンのブラウザーをサポートしていないと表示されます。
2. Lazyload はどのような状況に適していますか?
これには、多くの帯域幅を消費する画像、Flash リソース、iframe、Web ページ エディターなどが含まれます。現時点では、ビューポート内では、lazyload を使用してこのタイプのリソースを適切なタイミングで読み込むことができます。Web ページを開いたときに大量のリソースを読み込んで、ユーザーを長時間待たせることは避けられます。 >
3. レイジーロードの実装方法
レイジーロードの難しさ ユーザーが必要とするリソースを適切なタイミングでロードする方法 (ここでユーザーが必要とするリソースとは、ブラウザーの表示領域に表示されるリソースを指します) )。したがって、ターゲットがクライアント領域に表示されているかどうかを判断するには、次のようないくつかの情報を知る必要があります:
1. ブラウザの上部を基準としたビジュアル領域の位置
2. 位置
上記の 2 点のデータを取得した後、次の関数を使用して、オブジェクトがブラウザの表示領域にあるかどうかを判断できます。
function getClient() {
var l,t,w,h;
l = document.documentElement.scrollLeft ||
t = document.body.scrollTop; 🎜> w = document.documentElement.clientWidth;
戻り値 {'left':l,'top':t,'width':w,'height':h} ; 🎜> //ロードするリソースの場所に戻ります
function getSubClient(p){
var l = 0,t = 0,w,h;
w = p.offsetWidth; > h = p.offsetHeight;
while(p.offsetParent ){
l = p.offsetLeft;
t = p.offsetTop; 'height':h } ;
}
関数getClient()はブラウザクライアント領域の領域情報を返し、getSubClient()はターゲットモジュール領域の情報を返します。このとき、対象モジュールがクライアント領域に表示されるかどうかは、実際には上記の 2 つの四角形
コピーコード
これで、基本的にウィンドウに遅延読み込みを実装できます。 onscroll イベント このコードは、ターゲット領域がクライアント領域にレンダリングされるかどうかを監視します。
コードをコピーします
コードは次のとおりです。 🎜>
< div style = "width:100px; height:3000px">
var d1 = document.getElementById("d1");
Window.onscroll = function(){
We only need to load the resources we need in the pop-up window.
It is worth noting here that when the target object is presented in the client area, the pop-up window will continue to pop up as it scrolls. Therefore, we need to pop-up the first To cancel the monitoring of this area after a window, an array is used here to collect the objects that need to be monitored. It is also important to note: Because both the onscroll event and the onresize event will change the browser's visible area information, it is necessary to recalculate whether the target object is in the visible area after this type of event is triggered. Here, the autocheck() function is used to achieve this. (Lazyload on the Thunder homepage Whether the target object is in the visible area of the browser is not recalculated in the onresize event. Therefore, if you first reduce the browser window to a certain size, scroll to the area where the image needs to be loaded, and then click maximize, the image will not be loaded. Haha, you will need it later. Note).
Add element:
// Compare whether a certain sub-area is presented in the browser area
function jiance(arr,prec1,callback){
var prec2;
for(var i = arr.length - 1 ; i >= 0 ;i--){
if(arr[i]) {
prec2 = getSubClient(arr[i]);
if(intens(prec1,prec2)){
callback(arr[i]);
delete monitoring
delete arr[i]; = getClient();
jiance(arr,prec1,function(obj){
//Load resources...
alert(obj.innerHTML)
})
}
//Subarea one
var d1 = document.getElementById("d1");
//Subarea two
var d2 = document.getElementById("d2");
//Need to press Need to load the area collection
var arr = [d1,d2];
window.onscroll = function(){
// Recalculate
autocheck();
}
window. onresize = function(){
// Recalculate
autocheck();
}
Now we only need to load the resources we need in the pop-up window. Source code I won’t post it here. If anyone needs it or has any questions, please contact me.

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











SpringDataJPA は JPA アーキテクチャに基づいており、マッピング、ORM、トランザクション管理を通じてデータベースと対話します。そのリポジトリは CRUD 操作を提供し、派生クエリによりデータベース アクセスが簡素化されます。さらに、遅延読み込みを使用して必要な場合にのみデータを取得するため、パフォーマンスが向上します。

記事のキーワード: JavaJPA パフォーマンスの最適化 ORM エンティティ管理 JavaJPA (JavaPersistance API) は、Java オブジェクトを使用してデータベース内のデータを操作できるようにするオブジェクト リレーショナル マッピング (ORM) フレームワークです。 JPA は、データベースと対話するための統合 API を提供し、同じコードを使用して異なるデータベースにアクセスできるようにします。さらに、JPA は、アプリケーションのパフォーマンスを向上させることができる遅延ロード、キャッシュ、ダーティ データ検出などの機能もサポートしています。ただし、使用方法を誤ると、JPA のパフォーマンスがアプリケーションのボトルネックになる可能性があります。一般的なパフォーマンスの問題は次のとおりです。 N+1 クエリの問題: アプリケーションで JPQL クエリを使用すると、N+1 クエリの問題が発生する可能性があります。このような中で

いつものように、いくつか質問してみましょう。なぜダイナミック リンクなのでしょうか?動的リンクを行うにはどうすればよいですか?アドレス非依存コード技術とは何ですか?遅延結合技術とは何ですか?プログラムの実行中に明示的なリンクを行うにはどうすればよいですか?なぜダイナミックリンクなのか?動的リンクの登場は、静的リンクのいくつかの欠点を解決するためのものです: メモリとディスク領域の節約: 以下の図に示すように、Program1 と Program2 にはそれぞれ Program1.o と Program2.o という 2 つのモジュールが含まれており、どちらも Lib を必要とします。 ○モジュール。静的リンクの場合、両方のターゲット ファイルは Lib.o モジュールを使用するため、リンクによって出力された実行可能ファイル Program1 と Program2 にコピーがあり、同時に実行されます。

Hibernate クエリのパフォーマンスを最適化するためのヒントには、遅延読み込みを使用してコレクションと関連オブジェクトの読み込みを延期すること、バッチ処理を使用して更新、削除、または挿入操作を組み合わせて、HQL 外部接続を使用して頻繁にクエリされるオブジェクトをメモリに保存することなどがあります。エンティティとその関連エンティティを取得し、SELECTN+1 クエリ モードを回避するためにクエリ パラメータを最適化し、ブロック内の大量のデータを取得するためにインデックスを使用します。

Laravelのパフォーマンスボトルネックを解読:最適化テクニックを完全公開! Laravel は人気のある PHP フレームワークとして、開発者に豊富な機能と便利な開発エクスペリエンスを提供します。ただし、プロジェクトのサイズが大きくなり、訪問数が増加すると、パフォーマンスのボトルネックという課題に直面する可能性があります。この記事では、開発者が潜在的なパフォーマンスの問題を発見して解決できるように、Laravel のパフォーマンス最適化テクニックについて詳しく説明します。 1. Eloquent の遅延読み込みを使用したデータベース クエリの最適化 Eloquent を使用してデータベースにクエリを実行する場合は、次のことを避けてください。

iframe 読み込みイベントを防ぐ方法 Web 開発では、他の Web ページやコンテンツを埋め込むために iframe タグをよく使用します。デフォルトでは、ブラウザが iframe をロードすると、loading イベントがトリガーされます。ただし、場合によっては、iframe の読み込みを遅らせたり、読み込みイベントを完全に阻止したりしたい場合があります。この記事では、コード例を通じてこれを実現する方法を説明します。 1. iframe の読み込みを遅らせる iframe の読み込みを遅らせたい場合は、次を使用できます。

Java プログラミングの分野では、JPA (JavaPersistence API) は一般的な永続性フレームワークとして、開発者にリレーショナル データベースを操作する便利な方法を提供します。 JPA を使用すると、開発者は Java オブジェクトをデータベースに永続化し、データベースからデータを取得することが簡単にできるため、アプリケーションの開発効率と保守性が大幅に向上します。この記事では、さまざまな機能とアプリケーション シナリオをカバーする 10 個の高品質な JavaJPA オープン ソース プロジェクトを厳選し、より効率的で信頼性の高いアプリケーションを作成するためのより多くのインスピレーションとソリューションを開発者に提供することを目的としています。これらのプロジェクトには次のものが含まれます。 SpringDataJPA: springDataJPA は Spr です。

大きすぎる HTML 画像を最適化する方法をいくつか紹介します。 画像ファイル サイズを最適化する: 圧縮ツールまたは画像編集ソフトウェアを使用します。メディア クエリを使用する: デバイスに基づいて画像のサイズを動的に変更します。遅延読み込みを実装します。画像が表示領域に入ったときにのみ画像を読み込みます。 CDN を使用する: イメージを複数のサーバーに配布します。画像プレースホルダーを使用する: 画像の読み込み中にプレースホルダー画像を表示します。サムネイルを使用する: 画像の小さいバージョンを表示し、クリックするとフルサイズの画像を読み込みます。
