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
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.
Dengan penggunaan meluas datang beberapa titik kesakitan kritikal, termasuk:
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.
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.
Berikut ialah beberapa pepijat yang lebih terkenal:
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.
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 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 요소에서 직접 요청하고, 스크립트로 앱을 부풀리지 않고 양식이나 클릭 가능한 요소와 같은 대화형 구성 요소를 처리합니다.
WebAssembly(Wasm)의 목적은 JavaScript를 완전히 대체하는 것이 아니라 계산량이 많은 작업을 처리하는 것입니다. 이는 게임 성능, 데이터 과학 계산 또는 이미지 처리일 수 있으며 JavaScript는 성능 관점에서 이를 잘라내지 않습니다.
WebAssembly를 사용하면 C, C, Rust와 같은 언어를 컴파일하여 JavaScript를 사용하지 않고도 클라이언트 측에서 계산량이 많은 특정 작업을 수행할 수 있습니다. 따라서 WebAssembly는 웹 브라우저 내에서 비디오 편집, 게임 또는 데이터 처리와 같은 작업에 이상적입니다.
많은 계산을 처리해야 하는 사이트의 경우 WebAssembly를 사용하면 작업 속도를 높이고 로딩 시간을 단축할 수 있습니다.
JavaScript는 한때 클라이언트 측에만 국한되어 있었지만 Node.js가 도입되면서 서버에서도 엄청난 인기를 얻었습니다. Node에는 비동기식 이벤트 처리, 비차단 I/O, 그리고 물론 스택 전체에서 하나의 언어를 사용하는 등 많은 기능이 있습니다. 그러나 JavaScript의 함정(동적 타이핑, 프로토타입 오염과 같은 보안 위험, 복잡성 증가)은 여전히 남아 있습니다.
다행히도 서버측에는 JavaScript를 100% 대체할 수 있는 방법이 있습니다. 다음은 몇 가지입니다:
Go의 경량 고루틴은 스레드의 메모리 오버헤드 없이 동시 확장성이 뛰어난 시스템을 가능하게 합니다. 이 언어는 대규모 트래픽과 함께 매우 빠른 성능이 필요한 애플리케이션에 특히 적합합니다.
Django는 보안 분야에서 가장 인기 있는 제품입니다. 프로토타입 오염 및 Redos 공격(JavaScript에서 발생하기 쉬운)과 같은 취약점을 줄입니다. Go만큼 확장되지는 않지만 Django는 소규모 애플리케이션이나 보안에 민감한 애플리케이션에 적합합니다.
PHP는 항상 신뢰할 수 있는 백엔드 언어였으며 최신 프레임워크인 Laravel을 사용하면 중소 규모 프로젝트를 쉽게 관리할 수 있습니다. 자동 라우팅과 뛰어난 플러그인 생태계를 갖춘 PHP는 JavaScript의 부상에도 불구하고 여전히 개발 분야에서 그 자리를 지키고 있습니다.
빠른 개발을 위해 Ruby on Rails는 우아하고 개발자 친화적인 환경을 제공합니다. 대규모 애플리케이션을 처리하는 데 최고는 아닐 수 있지만 빠르고 확장 가능한 솔루션을 목표로 하는 소규모 팀에는 적합합니다.
특히 클라이언트 측과 서버 측의 모든 작업에 더 많은 JavaScript를 사용하면 숨겨진 비용이 많이 발생합니다. JavaScript 번들의 크기가 클수록 더 많은 문제에 직면하게 됩니다. 당신이 반대하는 것은 다음과 같습니다:
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.
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!