Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?

Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?

Oct 05, 2023 pm 12:13 PM
pengoptimuman fungsi php Malas memuatkan imej

Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?

Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi PHP?

Dengan perkembangan Internet, bilangan imej pada halaman web semakin meningkat, yang memberi tekanan kepada kelajuan memuatkan halaman. Untuk meningkatkan pengalaman pengguna dan mengurangkan masa pemuatan, kami boleh menggunakan teknologi pemuatan malas imej. Memuatkan imej yang malas boleh melambatkan pemuatan imej hanya dimuatkan apabila pengguna menatal ke kawasan yang boleh dilihat, yang boleh mengurangkan masa memuatkan halaman dan meningkatkan pengalaman pengguna.

Apabila menulis halaman web PHP, kami boleh mengoptimumkan kesan pemuatan malas imej dengan menulis beberapa fungsi. Berikut menerangkan secara terperinci cara melaksanakan pemuatan malas imej melalui fungsi PHP.

Langkah pertama ialah mendapatkan semua pautan imej
Pertama, kita perlu mendapatkan pautan ke semua imej dalam halaman semasa. Ini boleh dicapai dengan menggunakan fungsi preg_match_all dan ungkapan biasa, seperti yang ditunjukkan di bawah: preg_match_all 函数和正则表达式来实现,如下所示:

function get_image_urls($html) {
    $pattern = '/<img  class="lazy lazy"  src="/static/imghw/default1.png"  data-src="placeholder.jpg" [^ alt="Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?" >]+src=["']([^"']+)["'][^>]*>/i';
    preg_match_all($pattern, $html, $matches);
    return $matches[1];
}

$html = file_get_contents('http://example.com');
$image_urls = get_image_urls($html);
Salin selepas log masuk

第二步,生成图片占位符
在页面加载完成之前,我们需要为每个要懒加载的图片生成一个占位符,这样可以避免页面布局的重排。我们可以使用 <img class="lazy lazy" src="/static/imghw/default1.png" data-src="placeholder.jpg" alt="Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?" > 标签的 data-src 属性来保存图片的真实链接,使用占位符显示图片。

function generate_placeholder($image_url) {
    return '<img  class="lazy lazy"  src="/static/imghw/default1.png"  data-src="placeholder.jpg"  data- . $image_url . '" alt="Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?" >';
}

$placeholders = array_map('generate_placeholder', $image_urls);
Salin selepas log masuk

在上述代码中,placeholder.jpg 是一个占位图片,可以根据实际情况替换为其他图片。lazy 类可以用于标识延迟加载的图片。

第三步,监听页面滚动事件
我们需要监测用户的滚动行为,当用户滚动到图片的可视区域时,我们将图片的真实链接赋值给 src 属性,实现图片的加载。

function load_image($image_url) {
    echo "<script>
        window.addEventListener('scroll', function() {
            var images = document.querySelectorAll('.lazy');
            Array.prototype.forEach.call(images, function(image) {
                var rect = image.getBoundingClientRect();
                if(rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)) {
                    image.src = image.dataset.src;
                    image.classList.remove('lazy');
                }
            });
        });
    </script>";
}

array_map('load_image', $image_urls);
Salin selepas log masuk

在上述代码中,我们使用 JavaScript 来监听页面的滚动事件,并根据图片是否在可视区域内来判断是否加载图片。

第四步,样式优化
为了优化用户体验,我们可以给图片添加一些渐进加载的效果,如淡入淡出效果。可以通过 CSS 来实现。

.lazy {
    opacity: 0;
    transition: opacity 0.3s;
}

.lazy.show {
    opacity: 1;
}
Salin selepas log masuk

在 CSS 中,我们为 .lazy 类设置了一个过渡效果。当图片加载完成后,添加 .showrrreee

Langkah kedua ialah menjana ruang letak imej

Sebelum halaman dimuatkan, kita perlu malas memuatkan setiap imej menjana ruang letak, yang boleh mengelakkan penyusunan semula susun atur halaman. Kita boleh menggunakan atribut data-src bagi teg <img alt="Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?" > untuk menyimpan pautan sebenar imej dan menggunakan ruang letak untuk memaparkan imej.
rrreee

Dalam kod di atas, placeholder.jpg ialah imej pemegang tempat dan boleh digantikan dengan imej lain mengikut situasi sebenar. Kelas lazy boleh digunakan untuk mengenal pasti imej yang dimuatkan malas.

Langkah ketiga ialah memantau acara tatal halaman🎜Kami perlu memantau tingkah laku menatal pengguna Apabila pengguna menatal ke kawasan imej yang kelihatan, kami menetapkan pautan sebenar imej kepada src. atribut untuk melaksanakan imej pemuatan. 🎜rrreee🎜Dalam kod di atas, kami menggunakan JavaScript untuk mendengar acara tatal halaman dan menentukan sama ada untuk memuatkan imej berdasarkan sama ada imej itu berada dalam kawasan yang boleh dilihat. 🎜🎜Langkah keempat, pengoptimuman gaya🎜Untuk mengoptimumkan pengalaman pengguna, kami boleh menambah beberapa kesan pemuatan progresif pada imej, seperti kesan fade-in dan fade-out. Ini boleh dicapai melalui CSS. 🎜rrreee🎜Dalam CSS, kami menetapkan kesan peralihan untuk kelas .lazy. Apabila imej dimuatkan, tambahkan kelas .show untuk memaparkan imej. 🎜🎜Ringkasan🎜Melalui fungsi PHP di atas, kita boleh mencapai kesan pemuatan malas imej. Mula-mula, dapatkan pautan semua imej pada halaman, kemudian jana ruang letak, dengar acara tatal halaman untuk menentukan sama ada untuk memuatkan imej dan menambah pengoptimuman gaya. Ini boleh mengurangkan masa memuatkan halaman dengan berkesan dan meningkatkan pengalaman pengguna. 🎜🎜Kod yang diberikan di atas hanyalah contoh, anda boleh mengubah suai dan mengoptimumkannya mengikut keperluan dan situasi sebenar anda. Semoga ia membantu! 🎜

Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan kesan pemuatan malas imej melalui fungsi php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengoptimuman program C++: teknik pengurangan kerumitan masa Pengoptimuman program C++: teknik pengurangan kerumitan masa Jun 01, 2024 am 11:19 AM

Kerumitan masa mengukur masa pelaksanaan algoritma berbanding saiz input. Petua untuk mengurangkan kerumitan masa program C++ termasuk: memilih bekas yang sesuai (seperti vektor, senarai) untuk mengoptimumkan storan dan pengurusan data. Gunakan algoritma yang cekap seperti isihan pantas untuk mengurangkan masa pengiraan. Hapuskan berbilang operasi untuk mengurangkan pengiraan berganda. Gunakan cawangan bersyarat untuk mengelakkan pengiraan yang tidak perlu. Optimumkan carian linear dengan menggunakan algoritma yang lebih pantas seperti carian binari.

Sejauh manakah prestasi fungsi PHP? Sejauh manakah prestasi fungsi PHP? Apr 18, 2024 pm 06:45 PM

Prestasi fungsi PHP yang berbeza adalah penting untuk kecekapan aplikasi. Fungsi dengan prestasi yang lebih baik termasuk gema dan cetakan, manakala fungsi seperti str_replace, array_merge dan file_get_contents mempunyai prestasi yang lebih perlahan. Sebagai contoh, fungsi str_replace digunakan untuk menggantikan rentetan dan mempunyai prestasi sederhana, manakala fungsi sprintf digunakan untuk memformat rentetan. Analisis prestasi menunjukkan bahawa ia hanya mengambil masa 0.05 milisaat untuk melaksanakan satu contoh, membuktikan bahawa fungsi berfungsi dengan baik. Oleh itu, menggunakan fungsi dengan bijak boleh membawa kepada aplikasi yang lebih pantas dan cekap.

Membandingkan fungsi PHP dengan fungsi dalam bahasa lain Membandingkan fungsi PHP dengan fungsi dalam bahasa lain Apr 10, 2024 am 10:03 AM

Fungsi PHP mempunyai persamaan dengan fungsi dalam bahasa lain, tetapi juga mempunyai beberapa ciri unik. Secara sintaksis, fungsi PHP diisytiharkan dengan fungsi, JavaScript diisytiharkan dengan fungsi, dan Python diisytiharkan dengan def. Dari segi parameter dan nilai pulangan, fungsi PHP menerima parameter dan mengembalikan nilai JavaScript dan Python juga mempunyai fungsi yang serupa, tetapi sintaksnya berbeza. Dari segi skop, fungsi dalam PHP, JavaScript dan Python semuanya mempunyai skop global atau tempatan Fungsi global boleh diakses dari mana-mana sahaja, dan fungsi tempatan hanya boleh diakses dalam skop pengisytiharan mereka.

Persamaan dan perbezaan antara fungsi PHP dan fungsi Flutter Persamaan dan perbezaan antara fungsi PHP dan fungsi Flutter Apr 24, 2024 pm 01:12 PM

Perbezaan utama antara fungsi PHP dan Flutter ialah pengisytiharan, sintaks dan jenis pulangan. Fungsi PHP menggunakan penukaran jenis pulangan tersirat, manakala fungsi Flutter secara eksplisit menentukan jenis pulangan boleh menentukan parameter pilihan melalui ?, manakala fungsi Flutter menggunakan diperlukan dan [] untuk menentukan parameter yang diperlukan dan pilihan menggunakan = untuk lulus Parameter penamaan; Fungsi flutter menggunakan {} untuk menentukan parameter yang dinamakan.

Bagaimana untuk mengoptimumkan item permulaan sistem WIN7 Bagaimana untuk mengoptimumkan item permulaan sistem WIN7 Mar 26, 2024 pm 06:20 PM

1. Tekan kombinasi kekunci (kekunci win + R) pada desktop untuk membuka tetingkap jalankan, kemudian masukkan [regedit] dan tekan Enter untuk mengesahkan. 2. Selepas membuka Registry Editor, kami klik untuk mengembangkan [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer], dan kemudian lihat jika terdapat item Serialize dalam direktori Jika tidak, kami boleh klik kanan Explorer, buat item baharu dan namakannya Serialize. 3. Kemudian klik Serialize, kemudian klik kanan ruang kosong dalam anak tetingkap kanan, cipta nilai bit DWORD (32) baharu dan namakannya Bintang

Konfigurasi parameter Vivox100s didedahkan: Bagaimana untuk mengoptimumkan prestasi pemproses? Konfigurasi parameter Vivox100s didedahkan: Bagaimana untuk mengoptimumkan prestasi pemproses? Mar 24, 2024 am 10:27 AM

Konfigurasi parameter Vivox100s didedahkan: Bagaimana untuk mengoptimumkan prestasi pemproses? Dalam era perkembangan teknologi yang pesat hari ini, telefon pintar telah menjadi bahagian yang amat diperlukan dalam kehidupan seharian kita. Sebagai bahagian penting telefon pintar, pengoptimuman prestasi pemproses berkaitan secara langsung dengan pengalaman pengguna telefon mudah alih. Sebagai telefon pintar berprofil tinggi, konfigurasi parameter Vivox100s telah menarik banyak perhatian, terutamanya pengoptimuman prestasi pemproses telah menarik banyak perhatian daripada pengguna. Sebagai "otak" telefon bimbit, pemproses secara langsung mempengaruhi kelajuan berjalan telefon bimbit.

Apakah beberapa cara untuk menyelesaikan ketidakcekapan dalam fungsi PHP? Apakah beberapa cara untuk menyelesaikan ketidakcekapan dalam fungsi PHP? May 02, 2024 pm 01:48 PM

Lima cara untuk mengoptimumkan kecekapan fungsi PHP: elakkan penyalinan pembolehubah yang tidak perlu. Gunakan rujukan untuk mengelakkan penyalinan berubah-ubah. Elakkan panggilan fungsi berulang. Fungsi mudah sebaris. Mengoptimumkan gelung menggunakan tatasusunan.

'Black Myth: Wukong ' Versi Xbox telah ditangguhkan kerana 'kebocoran memori', pengoptimuman versi PS5 sedang dijalankan 'Black Myth: Wukong ' Versi Xbox telah ditangguhkan kerana 'kebocoran memori', pengoptimuman versi PS5 sedang dijalankan Aug 27, 2024 pm 03:38 PM

Baru-baru ini, "Mitos Hitam: Wukong" telah menarik perhatian besar di seluruh dunia. Bilangan pengguna dalam talian serentak pada setiap platform telah mencapai tahap tertinggi yang baharu. Versi Xbox "Black Myth: Wukong" telah ditangguhkan Walaupun "Black Myth: Wukong" telah dikeluarkan pada platform PC dan PS5, tidak ada berita pasti tentang versi Xboxnya. Difahamkan, pegawai itu mengesahkan bahawa "Mitos Hitam: Wukong" akan dilancarkan di platform Xbox. Bagaimanapun, tarikh pelancaran khusus masih belum diumumkan. Baru-baru ini dilaporkan bahawa kelewatan versi Xbox adalah disebabkan oleh isu teknikal. Menurut seorang blogger yang berkaitan, dia belajar daripada komunikasi dengan pembangun dan "orang dalam Xbox" semasa Gamescom bahawa versi Xbox "Black Myth: Wukong" wujud.

See all articles