Jadual Kandungan
Konteks: aplikasi suapan RSS
Eksperimen: Navigasi mudah alih bertukar -tukar
Keadaan ujian
Metrik
Metodologi
Hasilnya
Perbincangan: Tumpukan panggilan cetek
Kesimpulan dan Cadangan
Rumah hujung hadapan web tutorial css RadeventListener: Kisah Rangka Kerja Sisi Pelanggan

RadeventListener: Kisah Rangka Kerja Sisi Pelanggan

Apr 03, 2025 am 10:26 AM

RadeventListener: Kisah Rangka Kerja Sisi Pelanggan

Populariti React bukan tanpa pengkritiknya. Saiz kerangka yang besar (sekitar 120 kib minified) memberi kesan yang signifikan pada masa permulaan, terutamanya apabila hanya bergantung pada rendering sisi klien. Malah penyampaian pelayan dengan penghidratan sisi klien kekal intensif prestasi. Walaupun React cemerlang dalam pengurusan negeri yang kompleks, sumbernya menuntut lebih banyak manfaat dalam aplikasi yang lebih mudah. Ini dapat mengecualikan pengguna dengan perkakasan yang kurang kuat.

Walaupun tempahan saya mengenai overhead prestasi React, saya menghargai model komponennya dan sintaks JSX. Rendering sisi pelayan (atau menggunakan Preact, alternatif pilihan saya) kekal sebagai aset yang berharga. Walau bagaimanapun, menentukan penggunaan sisi pelanggan yang sesuai masih menjadi cabaran. Artikel ini memperincikan penemuan saya untuk mengoptimumkan prestasi bertindak balas untuk pengalaman pengguna yang lebih baik.

Konteks: aplikasi suapan RSS

Aplikasi suapan RSS saya, bylines.fyi , menggunakan JavaScript pada kedua -dua pelayan dan klien. Walaupun saya tidak sememangnya tidak suka rangka kerja pelanggan, pengalaman saya menyoroti dua isu berulang:

  1. Rangka kerja boleh mengaburkan platform web yang mendasari, menghalang pemahaman yang mendalam apabila mereka benar -benar bermanfaat.
  2. Rangka kerja tidak selalu menjamin pengalaman pengguna yang optimum.

Penyelidikan httparchive Tim Kadlec mengenai prestasi rangka kerja web memperkuat kebimbangan ini, mendedahkan prestasi kurang dari reaksi. Matlamat saya adalah untuk memanfaatkan kelebihan pelayan React semasa mengurangkan kelemahan pelanggannya.

Eksperimen: Navigasi mudah alih bertukar -tukar

Aplikasi RSS saya memerlukan JavaScript sisi pelanggan untuk togol navigasi mudah alih mudah-contoh klasik "keadaan mudah." Saya sering melihat komponen React yang terlalu banyak digunakan untuk tugas -tugas yang mudah, yang membawa kepada overhead prestasi yang tidak perlu. Eksperimen ini, walaupun seolah -olah remeh, berfungsi sebagai penanda aras penting untuk memahami bagaimana skala pilihan kerangka. Adalah penting untuk diperhatikan bahawa kebanyakan pemaju tidak semata -mata bergantung kepada React untuk ciri -ciri kecil seperti itu, tetapi hasilnya menggambarkan implikasi seni bina untuk prestasi runtime.

Keadaan ujian

Eksperimen ini membandingkan tiga pelaksanaan NAV mudah alih di empat peranti:

  1. Komponen React Stateful: pelayan yang diberikan dan klien-terhidrasi.
  2. Komponen Preact Stateful: pelayan yang diberikan dan klien-terhidrat.
  3. Komponen preact tanpa statur: pelayan yang diberikan, tidak terhidrasi; Menggunakan pendengar acara standard.

Peranti termasuk:

  1. Nokia 2 Android Phone (Chrome 83)
  2. Laptop ASUS X550CC (Windows 10, Chrome 83)
  3. IPhone Generasi 1 (Safari 13)
  4. IPhone Generasi ke -2 (Safari 13)

Metrik

Metrik berikut diukur untuk setiap pelaksanaan dan peranti:

  1. Masa permulaan: termasuk rangka kerja dan penghidratan (React/preact), atau hanya kod pendengar acara (eventListener).
  2. Masa penghidratan: subset masa permulaan (React/preact sahaja).
  3. Waktu Terbuka NAV Mudah Alih: Rangka kerja mengukur overhead dalam pengendalian acara.

Metodologi

Ujian melibatkan debugging dan profil jauh, merakam masa CPU untuk setiap metrik merentasi sepuluh lelaran setiap senario dan peranti. Prestasi rangkaian bukan faktor.

Hasilnya

Oleh kerana kerumitan data, hasilnya dibentangkan dalam format tabular yang menunjukkan masa CPU minimum, maksimum, median, dan purata. (Jadual terperinci boleh didapati dalam spreadsheet yang disertakan). Penemuan utama termasuk:

  • Kos permulaan dan penghidratan yang tinggi React: terutamanya ketara pada Nokia 2 yang rendah.
  • Prestasi yang lebih baik Preact: jauh lebih cepat daripada bertindak balas, tetapi masih melebihi belanjawan bingkai yang ideal pada Nokia 2.
  • Prestasi pendengar acara unggul: secara konsisten lebih cepat daripada kedua -dua reaksi dan praktik, terutamanya untuk interaksi mudah.

Perbincangan: Tumpukan panggilan cetek

Perbezaan prestasi berpunca dari overhead rangka kerja dan penghidratan. Walaupun sesetengah prestasi perdagangan tidak dapat dielakkan untuk kemudahan pemaju, keseimbangan sering kali terlalu banyak ke arah pengalaman pemaju dengan mengorbankan pengguna. Tumpukan panggilan untuk reaksi dan penghidratan yang telah berlaku menyerlahkan tuntutan pemprosesan yang signifikan, terutama untuk tugas -tugas yang mudah. Menggunakan pendengar acara asli menawarkan pendekatan yang lebih efisien untuk pengurusan negara yang mudah.

Kesimpulan dan Cadangan

Analisis ini tidak dimaksudkan sebagai kritikan yang bertindak balas, melainkan semangat untuk menilai secara kritis pilihan kerangka dan kesan prestasi mereka. Beberapa strategi dapat mengurangkan masalah prestasi:

  1. Komponen refactor yang berkesudahan ke komponen tanpa statur di mana mungkin.
  2. Elakkan JavaScript dan penghidratan pelanggan untuk komponen tanpa stat.
  3. Gunakan pendengar acara bebas kerangka untuk interaksi mudah.
  4. Komponen hidrat marlak menggunakan pemerhati persimpangan atau requestIdleCallback .
  5. Pertimbangkan Preact sebagai alternatif yang lebih cepat untuk bertindak balas.
  6. Menyesuaikan pengalaman pengguna untuk peranti memori rendah menggunakan navigator.deviceMemory .

Mengutamakan ujian prestasi merentasi pelbagai peranti, memastikan keterangkuman bagi pengguna dengan keupayaan perkakasan yang berbeza -beza. Matlamatnya harus menjadi pengalaman web yang cepat dan boleh diakses untuk semua orang.

Terima kasih kepada Eric Bailey untuk maklum balas editorial dan kakitangan CSS-Tricks untuk menerbitkan artikel ini.

Atas ialah kandungan terperinci RadeventListener: Kisah Rangka Kerja Sisi Pelanggan. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1262
29
Tutorial C#
1235
24
Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Bagaimana Kami Membuat Tapak Statik yang Menjana Corak Tartan Di SVG Apr 09, 2025 am 11:29 AM

Tartan adalah kain berpola yang biasanya dikaitkan dengan Scotland, terutamanya kilt bergaya mereka. Di Tartanify.com, kami mengumpulkan lebih dari 5,000 Tartan

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

Cara Membina Komponen Vue dalam Tema WordPress Cara Membina Komponen Vue dalam Tema WordPress Apr 11, 2025 am 11:03 AM

Arahan template inline membolehkan kita membina komponen Vue yang kaya sebagai peningkatan progresif ke atas markup WordPress yang sedia ada.

PHP adalah A-OK untuk templat PHP adalah A-OK untuk templat Apr 11, 2025 am 11:04 AM

Templat PHP sering mendapat rap buruk untuk memudahkan kod subpar - tetapi itu tidak perlu berlaku. Mari kita lihat bagaimana projek PHP dapat menguatkuasakan asas

Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Pengaturcaraan sass untuk mencipta kombinasi warna yang boleh diakses Apr 09, 2025 am 11:30 AM

Kami sentiasa mencari untuk menjadikan web lebih mudah diakses. Kontras warna hanya matematik, jadi Sass dapat membantu menutup kes -kes kelebihan yang mungkin dilewatkan oleh para pereka.

See all articles