Javascript Membunuh Pelayar Web

Patricia Arquette
Lepaskan: 2024-10-12 06:32:02
asal
331 orang telah melayarinya

Web 99% Bebas JavaScript: Adakah Mungkin?

JavaScript tidak dapat diramalkan, lama, dan kadangkala membuatkan saya muntah. Saya tidak mahu menggunakannya lagi. Kini, baris ini sesuai untuk menarik perhatian anda, tetapi pada masa yang sama, ia adalah palsu kerana pembangun tidak boleh hidup tanpa JavaScript, terutamanya pembangun bahagian hadapan.
Penerokaan ini adalah tentang mencari cara untuk mengelakkan JavaScript. Apabila saya menyebut "elakkan JavaScript," saya tidak mencadangkan menggunakan sesuatu yang diterjemahkan ke dalam JavaScript. Apa yang saya maksudkan sebenarnya ialah saya hanya mahukan JavaScript yang sangat minimum dalam output akhir kod aplikasi saya.

Tonton ini di YT

Terlalu Banyak Menggunakan JavaScript: Mengapa Ia Menjadi Masalah

Pembangun hari ini sangat bergantung pada JavaScript untuk segala-galanya daripada rangka kerja bahagian hadapan hingga interaksi API. Tetapi adakah kita benar-benar perlu bergantung padanya? Inilah yang berlaku: Pembangun sering berasa tertekan untuk menggunakan JavaScript apabila alternatif yang lebih mudah dan lebih cekap tersedia.

Ambil rangka kerja popular seperti React, Vue, Angular dan Svelte. Ini hebat untuk mencipta tapak web yang dinamik dan responsif tetapi boleh berlebihan untuk aplikasi yang lebih mudah. Mereka memperkenalkan kerumitan yang tidak perlu, akhirnya meningkatkan keluk pembelajaran dan menjadikan penyelenggaraan menyusahkan.

Jadi, Apakah Isu dengan JavaScript?

Dengan penggunaan meluas datang beberapa titik kesakitan kritikal, termasuk:

  1. Masa Muatan Lebih Perlahan – Himpunan JavaScript yang besar memperlahankan prestasi halaman. Setiap pustaka yang anda tambah meningkatkan berat projek anda, menjadikan masa pemuatan menjadi perlahan.
  2. Isu Paparan Sebelah Pelanggan – Banyak rangka kerja tidak perlu bergantung pada pemaparan pelanggan, yang boleh menyebabkan kelewatan dan gangguan prestasi. Apl bertindak balas, contohnya, memaparkan semula keseluruhan halaman web menggunakan DOM maya, menambah lebih banyak masa sebelum halaman web menjadi interaktif.
  3. Ketergantungan Berat – Semakin banyak perpustakaan yang anda tambahkan, semakin banyak anda akan menghadapi masalah dengan keserasian, kemas kini versi dan konflik kebergantungan.
  4. Kos Penyelenggaraan Tersembunyi – Mengikuti kemas kini yang berterusan dan kemungkinan perubahan pemecahan daripada terlalu bergantung pada pakej menjadi urusan yang mahal dari segi masa dan sumber.

Penyusun JIT: Wahai Budak!

Salah satu bidang utama yang JavaScript cuba meningkatkan prestasi ialah melalui Kompilasi JIT (Just-In-Time). Penyemak imbas moden, seperti enjin V8 Chrome, menyusun JavaScript ke dalam kod mesin pada masa jalan.

Javascript is Killing Web Browsers

Matlamatnya adalah untuk membuat JavaScript secepat mungkin.

Walau bagaimanapun, pengoptimuman ini memerlukan kos. Penyusun JIT kadangkala mengubah tingkah laku kod JavaScript, selalunya memperkenalkan pepijat dan isu yang tidak dijangka yang boleh menjadikan apl web anda rapuh. Ringkasnya, pengoptimuman pengkompil JIT boleh menjadi perjudian.

Pepijat Pengkompil JIT Biasa

Berikut ialah beberapa pepijat yang lebih terkenal:

  • Salah penyusunan: Pengkompil JIT boleh menghasilkan output yang salah jika ia salah mengoptimumkan bahagian kod.
  • Penghapusan Semakan Sempadan: Dalam percubaan untuk mengoptimumkan, pengkompil JIT mungkin melangkau semakan yang diperlukan seperti sempadan tatasusunan, membuka pintu kepada ranap.
  • Penghapusan Lebihan: Apabila pengkompil JIT menganggap kod berulang adalah berlebihan, ia mungkin menghapuskan bahagian penting, menyebabkan tingkah laku yang tidak dapat diramalkan.

Isu pengkompil ini menggariskan kepentingan menguji JavaScript secara meluas untuk mengelakkan masalah yang tidak dijangka. Tetapi yang lebih penting, ia menunjukkan sebab kita perlu mengurangkan JavaScript apabila boleh untuk mengurangkan risiko isu baharu yang timbul.

Alternatif Sisi Pelanggan kepada JavaScript

Berita baiknya ialah anda tidak perlu terperangkap dalam gelung JavaScript. Beberapa alternatif telah muncul untuk mengurangkan JavaScript sambil mengekalkan fungsi. Dua daripada pilihan yang paling menarik ialah HTMX dan WebAssembly.

HTMX: Hipermedia pada Steroid

HTMX membolehkan pembangun membina aplikasi web yang dinamik dan interaktif dengan JavaScript yang minimum. Daripada bergantung pada JavaScript untuk setiap interaksi, HTMX menghantar HTML sebenar daripada pelayan, mengurangkan keperluan untuk memaparkan semula keseluruhan UI dengan rangka kerja JavaScript seperti React.

Bayangkan ini: Daripada menghantar respons JSON kembali untuk bahagian hadapan anda untuk diproses, HTMX membolehkan anda menghantar HTML terus dari bahagian belakang, mengurangkan churn sebelah pelanggan. HTMX bergantung pada sauh HTML tradisional dan borang untuk membuat panggilan terus ke pelayan—semuanya tanpa JavaScript.

HTMX가 인기 있는 이유:

  • 최소 학습 곡선 – HTML에 몇 가지 속성을 추가하면 바로 실행됩니다.
  • HTML과 함께 작동 – 과도한 JavaScript를 사용하여 DOM을 조작하지 마세요.
  • 우아한 대체 – 누군가가 브라우저에서 JavaScript를 비활성화하더라도 HTMX 기반 앱은 일부 추가 기능 없이도 계속 작동합니다.

자바스크립트가 없으면 많은 앱이 중단되는 세상에서 HTMX는 더 넓은 호환성과 더 나은 성능을 보장합니다. 기본으로 돌아가서 HTML 요소에서 직접 요청하고, 스크립트로 앱을 부풀리지 않고 양식이나 클릭 가능한 요소와 같은 대화형 구성 요소를 처리합니다.

WebAssembly: 강력한 성능

WebAssembly(Wasm)의 목적은 JavaScript를 완전히 대체하는 것이 아니라 계산량이 많은 작업을 처리하는 것입니다. 이는 게임 성능, 데이터 과학 계산 또는 이미지 처리일 수 있으며 JavaScript는 성능 관점에서 이를 잘라내지 않습니다.

WebAssembly를 사용하면 C, C, Rust와 같은 언어를 컴파일하여 JavaScript를 사용하지 않고도 클라이언트 측에서 계산량이 많은 특정 작업을 수행할 수 있습니다. 따라서 WebAssembly는 웹 브라우저 내에서 비디오 편집, 게임 또는 데이터 처리와 같은 작업에 이상적입니다.

WebAssembly의 주요 이점:

  • 뛰어난 성능: JavaScript가 처리하기 어려운 CPU 사용량이 많은 작업에 최적화되었습니다.
  • 브라우저에서 직접 실행: JavaScript와 마찬가지로 브라우저 지원의 이점을 누리지만 JavaScript 파싱/렌더링 비효율성이 필요하지 않습니다.
  • 이식성: 동일한 코드를 뛰어난 효율성으로 여러 브라우저에서 컴파일하고 실행할 수 있습니다.

많은 계산을 처리해야 하는 사이트의 경우 WebAssembly를 사용하면 작업 속도를 높이고 로딩 시간을 단축할 수 있습니다.

서버측: JavaScript를 버릴 시간인가?

JavaScript는 한때 클라이언트 측에만 국한되어 있었지만 Node.js가 도입되면서 서버에서도 엄청난 인기를 얻었습니다. Node에는 비동기식 이벤트 처리, 비차단 I/O, 그리고 물론 스택 전체에서 하나의 언어를 사용하는 등 많은 기능이 있습니다. 그러나 JavaScript의 함정(동적 타이핑, 프로토타입 오염과 같은 보안 위험, 복잡성 증가)은 여전히 ​​남아 있습니다.

다행히도 서버측에는 JavaScript를 100% 대체할 수 있는 방법이 있습니다. 다음은 몇 가지입니다:

1. 고(고랭)

Go의 경량 고루틴은 스레드의 메모리 오버헤드 없이 동시 확장성이 뛰어난 시스템을 가능하게 합니다. 이 언어는 대규모 트래픽과 함께 매우 빠른 성능이 필요한 애플리케이션에 특히 적합합니다.

2. 장고(파이썬)

Django는 보안 분야에서 가장 인기 있는 제품입니다. 프로토타입 오염Redos 공격(JavaScript에서 발생하기 쉬운)과 같은 취약점을 줄입니다. Go만큼 확장되지는 않지만 Django는 소규모 애플리케이션이나 보안에 민감한 애플리케이션에 적합합니다.

3. PHP(라라벨)

PHP는 항상 신뢰할 수 있는 백엔드 언어였으며 최신 프레임워크인 Laravel을 사용하면 중소 규모 프로젝트를 쉽게 관리할 수 있습니다. 자동 라우팅과 뛰어난 플러그인 생태계를 갖춘 PHP는 JavaScript의 부상에도 불구하고 여전히 개발 분야에서 그 자리를 지키고 있습니다.

4. 루비 온 레일스

빠른 개발을 위해 Ruby on Rails는 우아하고 개발자 친화적인 환경을 제공합니다. 대규모 애플리케이션을 처리하는 데 최고는 아닐 수 있지만 빠르고 확장 가능한 솔루션을 목표로 하는 소규모 팀에는 적합합니다.

JavaScript 프레임워크의 숨겨진 비용

특히 클라이언트 측과 서버 측의 모든 작업에 더 많은 JavaScript를 사용하면 숨겨진 비용이 많이 발생합니다. JavaScript 번들의 크기가 클수록 더 많은 문제에 직면하게 됩니다. 당신이 반대하는 것은 다음과 같습니다:

  • Package Bloat – Lebih banyak perpustakaan dan kebergantungan yang anda tambahkan, lebih banyak keluaran akhir anda melambung dengan kod yang tidak diperlukan.
  • Peningkatan Penyelenggaraan – Memastikan kebergantungan tersebut dikemas kini akan mewujudkan overhed penyelenggaraan dan berisiko merosakkan apl anda apabila perpustakaan menjalani kemas kini utama.
  • Memecahkan Perubahan – Kemas kini rangka kerja (atau kemas kini perpustakaan kecil) mungkin memecahkan kefungsian sedia ada, menyebabkan anda berebut untuk menulis semula sebahagian besar kod.

Penyelesaiannya? Utamakan Prestasi dan Keselamatan

Akhirnya, mengurangkan JavaScript bukan sahaja tentang mengelakkan pepijat atau masa muat yang perlahan—ia adalah tentang membina aplikasi web yang lebih pantas, lebih mudah dan lebih selamat. Dengan memunggah pengiraan berat ke WebAssembly, mengendalikan kemas kini UI secara asli dengan HTMX dan mengalihkan logik bahagian belakang ke bahasa yang lebih selamat seperti Go atau Python, anda akan meningkatkan projek web anda secara drastik.

Walaupun memotong JavaScript sepenuhnya mungkin tidak boleh dilaksanakan untuk semua orang, mengurangkan JavaScript sebanyak mungkin pastinya berbaloi untuk dilakukan. Ini semua tentang menggunakan alternatif moden untuk mengelak daripada menjadikan JavaScript sebagai hambatan pembangun.

Kesimpulan

Sama ada anda berhasrat untuk meminimumkan JavaScript pada klien atau pelayan, anda mempunyai kuasa untuk menjadikan aplikasi web anda lebih ramping, lebih pantas dan lebih selamat. HTMX dan WebAssembly menawarkan alternatif menarik untuk pembangunan bahagian hadapan yang berat JavaScript, manakala Go, Django dan Laravel ialah pilihan yang berdaya maju untuk bahagian belakang.

JavaScript berada di sini untuk kekal, tetapi kita tidak perlu bergantung padanya untuk segala-galanya. Dengan mengurangkan jejak JavaScript secara strategik, akhirnya kami boleh membina apl yang berprestasi lebih baik dan berskala dengan lancar.

Bersedia untuk mengurangkan JavaScript anda dan mengawal apl web anda? Mulakan percubaan hari ini!

Atas ialah kandungan terperinci Javascript Membunuh Pelayar Web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!