Rumah hujung hadapan web uni-app pemuatan malas uniapp tidak berkuat kuasa

pemuatan malas uniapp tidak berkuat kuasa

May 22, 2023 pm 12:20 PM

Dengan perkembangan dan populariti Internet mudah alih, semakin ramai orang memilih untuk menggunakan uniapp untuk pembangunan mudah alih. Dalam pembangunan uniapp, pemuatan malas ialah teknologi yang sangat penting, yang boleh membantu kami mengoptimumkan kelajuan pemuatan halaman dan meningkatkan pengalaman pengguna. Walau bagaimanapun, kadangkala kami mendapati bahawa pemuatan malas tidak berkuat kuasa Artikel ini akan membincangkan isu ini.

1. Apakah uniapp lazy loading?

Pemuatan malas ialah strategi pengoptimuman yang memuatkan imej atau sumber media lain secara dinamik apabila halaman sedang menatal sumber ini hanya dimuatkan apabila ia memasuki julat yang boleh dilihat, dengan itu mengurangkan masa yang diperlukan untuk pemuatan pertama untuk mempercepatkan pemuatan halaman. Dalam uniapp, kita boleh melaksanakan pemuatan malas dengan menetapkan atribut muat malas atau menggunakan antara muka uni.loadImage.

2. Mengapa pemuatan malas uniapp gagal?

Jika anda menggunakan pemuatan malas dalam uniapp tetapi ia tidak berkesan, berikut adalah beberapa sebab yang mungkin:

1 Ketinggian elemen bekas tidak ditetapkan

Dalam elemen kontena ( Contohnya, apabila lazy loading digunakan dalam div), elemen kontena mesti mempunyai ketinggian tetap, jika tidak, penyemak imbas tidak dapat menentukan sama ada objek berada dalam kawasan yang boleh dilihat. Oleh itu, jika elemen kontena tidak menetapkan ketinggian, pemuatan malas akan gagal.

Contohnya, kod berikut:

<div style="height:1000px;">
  <img src="/static/img.jpg" lazy-load />
</div>
Salin selepas log masuk

Dalam contoh ini, div elemen bekas mempunyai ketinggian tetap, tetapi elemen gambar tidak mempunyai lebar dan tinggi. Perlu diingat bahawa apabila elemen kontena dimuatkan secara dinamik, ketinggian harus dikira semula selepas data kontena dimuatkan.

2. Tetapkan skop pemerhatian IntersectionObserver

IntersectionObserver ialah API baharu yang boleh melaksanakan pemuatan elemen yang malas, tetapi ia mempunyai skop pemerhatian (root Jika kita menetapkan IntersectionObserver Jika pemerhatian). julat ditentukan, pemuatan malas akan gagal.

Sebagai contoh, kod berikut:

<view>
  <image src="/static/img.jpg" root="{{root}}" lazy-load />
</view>

<script>
export default {
  data () {
    return {
      root: '#my-root'
    }
  },
  mounted () {
    const observer = uni.createIntersectionObserver().relativeToViewport({
      bottom: 50
    })
    observer.observe('.lazy-load', () => {
      console.log('image lazy load')
    })
  }
}
</script>
Salin selepas log masuk

Dalam contoh ini, kami menentukan julat pemerhatian dengan menetapkan parameter akar IntersectionObserver, jadi apabila elemen yang diperhatikan memasuki kawasan yang boleh dilihat, ia akan Laksanakan fungsi panggil balik lazy-load. Jika parameter akar tidak ditetapkan, port pandangan akan menjadi skop pemerhatian secara lalai.

3. Imej telah dicache

Apabila imej dicache oleh penyemak imbas, tidak kira sama ada ia berada dalam kawasan yang boleh dilihat, sumber imej tidak akan diminta lagi, kerana penyemak imbas akan terus Dapatkan sumber imej daripada cache. Jadi dalam kes ini, memuatkan malas juga akan gagal.

3. Bagaimana untuk menyelesaikan masalah malas memuatkan uniapp?

1. Gunakan antara muka uni.loadImage

uni.loadImage ialah antara muka memuatkan imej yang disediakan oleh uniapp, yang boleh melaksanakan pemuatan malas. Cirinya ialah ia boleh memuatkan imej secara dinamik apabila diperlukan tanpa perlu memuatkan semua imej. Menggunakan antara muka ini boleh menyelesaikan banyak masalah kegagalan LazyLoad. Mengenai penggunaan uni.loadImage, terdapat pengenalan terperinci dalam dokumentasi rasmi, jadi saya tidak akan menerangkan butiran di sini.

2. Gunakan IntersectionObserver

Jika anda ingin menggunakan IntersectionObserver untuk melaksanakan pemuatan malas elemen, anda boleh mempertimbangkan untuk menetapkan elemen akar (root) kepada kosong atau viewport. Dengan cara ini, pemuatan malas tidak akan gagal disebabkan oleh isu julat pemerhatian.

Contohnya, kod berikut:

<view>
  <image src="/static/img.jpg" lazy-load />
</view>

<script>
export default {
  mounted () {
    const observer = uni.createIntersectionObserver().relativeToViewport({
      bottom: 50
    })
    observer.observe('.lazy-load', () => {
      console.log('image lazy load')
    })
  }
}
</script>
Salin selepas log masuk

Dalam contoh ini, kami tidak menentukan julat pemerhatian (root), jadi julat pemerhatiannya lalai kepada viewport, supaya pemuatan malas boleh berjaya .

3. Tetapkan lebar, tinggi dan tinggi imej

Apabila lebar, tinggi dan tinggi imej ditetapkan dengan betul, kesan pemuatan malas akan menjadi lebih baik. Oleh kerana penyemak imbas boleh menentukan saiz imej, ia boleh menentukan dengan lebih baik sama ada imej itu berada dalam kawasan yang boleh dilihat. Oleh itu, apabila menggunakan pemuatan malas, anda harus menetapkan lebar dan ketinggian imej pada masa yang sama.

Sebagai contoh, kod berikut:

<view>
  <image src="/static/img.jpg" style="width:100%;height:300px;" lazy-load />
</view>
Salin selepas log masuk

Dalam contoh ini, kami menetapkan lebar dan tinggi elemen imej supaya penyemak imbas boleh menentukan dengan lebih tepat sama ada ia berada dalam kawasan yang boleh dilihat .

Ringkasan:

Pemuatan malas ialah teknologi penting dalam pembangunan mudah alih, yang boleh meningkatkan kelajuan pemuatan halaman dan pengalaman pengguna. Terdapat banyak cara untuk melaksanakan pemuatan malas dalam uniapp, tetapi kadangkala pemuatan malas gagal. Artikel ini memperkenalkan tiga kemungkinan sebab kegagalan LazyLoad dan cara menyelesaikan masalah ini. Saya harap ia dapat membantu semua orang menggunakan teknologi pemuatan malas dengan lebih baik.

Atas ialah kandungan terperinci pemuatan malas uniapp tidak berkuat kuasa. 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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 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)

Bagaimana saya mengendalikan storan tempatan di uni-app? Bagaimana saya mengendalikan storan tempatan di uni-app? Mar 11, 2025 pm 07:12 PM

Artikel ini memperincikan API penyimpanan tempatan Uni-App (uni.setstoragesync (), uni.getstoragesync (), dan rakan-rakan async mereka), menekankan amalan terbaik seperti menggunakan kekunci deskriptif, mengehadkan saiz data, dan mengendalikan parsing JSON. Ia menekankan bahawa lo

Bagaimanakah saya menguruskan Negeri dalam Uni App menggunakan Vuex atau Pinia? Bagaimanakah saya menguruskan Negeri dalam Uni App menggunakan Vuex atau Pinia? Mar 11, 2025 pm 07:08 PM

Artikel ini membandingkan Vuex dan Pinia untuk pengurusan negeri di Uni-App. Ia memperincikan ciri -ciri, pelaksanaan, dan amalan terbaik mereka, menonjolkan kesederhanaan Pinia berbanding struktur Vuex. Pilihan bergantung pada kerumitan projek, dengan pinia sutia

Bagaimana saya membuat permintaan API dan mengendalikan data dalam uni app? Bagaimana saya membuat permintaan API dan mengendalikan data dalam uni app? Mar 11, 2025 pm 07:09 PM

Butiran artikel ini membuat dan mendapatkan permintaan API dalam Uni-app menggunakan Uni.request atau Axios. Ia meliputi pengendalian tindak balas JSON, amalan keselamatan terbaik (HTTPS, pengesahan, pengesahan input), kegagalan penyelesaian masalah (isu rangkaian, kors, s

Bagaimana saya menggunakan API Geolocation Uni-App? Bagaimana saya menggunakan API Geolocation Uni-App? Mar 11, 2025 pm 07:14 PM

Artikel ini memperincikan API Geolocation Uni-App, yang memberi tumpuan kepada uni.getLocation (). Ia menangani perangkap biasa seperti sistem koordinat yang salah (GCJ02 vs WGS84) dan isu kebenaran. Meningkatkan ketepatan lokasi melalui bacaan dan pengendalian purata

Bagaimana saya menggunakan API perkongsian sosial Uni-app? Bagaimana saya menggunakan API perkongsian sosial Uni-app? Mar 13, 2025 pm 06:30 PM

Artikel ini memperincikan bagaimana untuk mengintegrasikan perkongsian sosial ke dalam projek Uni-app menggunakan API Uni.share, meliputi persediaan, konfigurasi, dan ujian di seluruh platform seperti WeChat dan Weibo.

Bagaimanakah saya menggunakan ciri Easycom Uni-App untuk pendaftaran komponen automatik? Bagaimanakah saya menggunakan ciri Easycom Uni-App untuk pendaftaran komponen automatik? Mar 11, 2025 pm 07:11 PM

Artikel ini menerangkan ciri Easycom UNI-APP, mengautomasikan pendaftaran komponen. Ia memperincikan konfigurasi, termasuk pemetaan komponen autoscan dan adat, menonjolkan faedah seperti dikurangkan boilerplate, kelajuan yang lebih baik, dan kebolehbacaan yang dipertingkatkan.

Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Mar 18, 2025 pm 12:20 PM

Artikel membincangkan menggunakan SASS dan kurang preprocessors dalam UNI-APP, memperincikan persediaan, faedah, dan penggunaan dwi. Fokus utama adalah pada konfigurasi dan kelebihan. [159 aksara]

Bagaimanakah saya menggunakan API Uni.request Uni-App untuk membuat permintaan HTTP? Bagaimanakah saya menggunakan API Uni.request Uni-App untuk membuat permintaan HTTP? Mar 11, 2025 pm 07:13 PM

Artikel ini butiran API UNI.REQUEST dalam UNI-APP untuk membuat permintaan HTTP. Ia meliputi penggunaan asas, pilihan lanjutan (kaedah, tajuk, jenis data), teknik pengendalian ralat yang mantap (panggilan balik gagal, pemeriksaan kod status), dan integrasi dengan authenticat

See all articles