


node.js ialah platform yang dibina pada masa jalan JavaScript Chrome Senario yang berkenaan termasuk aplikasi muzik dalam talian setempat, aplikasi carian dalam talian setempat, APP dalam talian setempat, dsb.
Persekitaran pengendalian artikel ini: sistem Windows 7, nodejs versi 10.16.2, komputer Dell G3.
Apakah itu node.js?
Ringkasnya, Node.js ialah JavaScript yang dijalankan di bahagian pelayan.
Node.js ialah platform yang dibina pada masa jalan JavaScript Chrome.
Node.js ialah persekitaran JavaScript bahagian pelayan I/O dipacu peristiwa berdasarkan enjin V8 Google Enjin V8 melaksanakan Javascript dengan sangat pantas dan mempunyai prestasi yang sangat baik.
Fahami senario NodeJS yang berkenaan pada dasarnya
NodeJS ialah platform JS bahagian pelayan yang popular dalam beberapa tahun kebelakangan ini pemprosesan. Prestasi cemerlang concurrency, sebaliknya, peningkatan kod berkuasa dan aplikasi pengurusan projek seperti npm, grunt, express pada platform nodeJS, telah hampir mentakrifkan semula kaedah dan proses kerja bahagian hadapan.
Kejayaan NodeJS menandakan kuasanya, tetapi bukankah semua situasi sesuai untuk menggunakan NodeJS sebagai platform bahagian pelayan?
Jawapannya sudah tentu tidak, dan terdapat pendapat yang berbeza di Internet. Kemudian mari kita fahami penggunaan NodeJS daripada prinsipnya.
Sebelum bercakap tentang NodeJS, mari kita lihat dahulu tradisional (diwakili oleh Apache) platform pemprosesan bahagian pelayan untuk mengendalikan konkurensi.
1. Mod konkurensi tinggi berbilang benang Apache
Apache kini merupakan perisian pelayan web nombor satu dunia kerana ia menyokong serentak berbilang benang, ia dialu-alukan oleh majoriti pemilih teknologi pelayan. Tetapi kemudiannya, Apache secara beransur-ansur mendedahkan kelemahannya dalam beberapa aplikasi WEB berskala besar: menyekat.
Sesetengah pelajar mungkin tertanya-tanya, bukankah Apache berbilang benang untuk pemprosesan serentak Mengapa masih ada penyekatan?
Untuk memahami perkara ini, pertama sekali kita perlu memahami konsep benang
1.1 Apakah itu benang?
Kami memetik penjelasan rasmi: unit CPU terkecil yang benang boleh dijalankan secara bebas, boleh berjalan serentak dalam proses yang sama dan berkongsi ruang alamat memori proses(perhatikan ciri ini).
Kita dapat melihat bahawa utas di bawah proses yang sama akan berkongsi fail dan memori yang sama (ruang alamat memori), jadi anda boleh bayangkan bahawa apabila utas yang berbeza perlu menduduki pembolehubah yang sama, mereka akan ditentukan berdasarkan ketibaan pertama. Berdasarkan prinsip siapa cepat dia dapat, apabila utas yang tiba dahulu sedang berjalan, utas berikutnya hanya boleh menunggu di tepi, iaitu, mereka menyertai urutan baris gilir menyekat. Jadi inilah yang menyebabkan benang tersekat. Oleh itu, walaupun sesuatu proses boleh menyokong berbilang rangkaian,ia kelihatan dilaksanakan serentak tetapi tidak disegerakkan antara satu sama lain. Berbilang benang dalam proses berkongsi ruang alamat memori yang sama, yang bermaksud mereka boleh mengakses pembolehubah dan objek yang sama, dan mereka memperuntukkan objek dari timbunan yang sama. Walaupun ini memudahkan untuk berkongsi maklumat antara utas, pengaturcara mesti berhati-hati untuk memastikan bahawa mereka tidak mengganggu utas lain dalam proses yang sama.
Setelah memahami kelemahan selari berbilang benang, kami dapat memahami dengan lebih baik kuasa NodeJS. Kerana NodeJS adalah asynchronous dan single-threaded!2. Prinsip I/O Asynchronous NodeJS
Mari kita lihat sekeping kod untuk Apache meminta pangkalan data:
hanya empat perkataan: panggil balik tak segerak . Parameter pertanyaan kedua ialah fungsi panggil balik Apabila proses melaksanakan db.query, ia tidak akan menunggu keputusan dikembalikan, tetapi akan terus melaksanakan penyataan berikut sehingga ia memasuki gelung peristiwa. Apabila hasil pelaksanaan pangkalan data kembali, acara akan dihantar ke baris gilir acara, dan fungsi panggil balik sebelumnya akan dipanggil hanya selepas utas memasuki gelung acara. Istilah yang lebih teknikal ialah I/O tak segerak. Sehelai benang pun boleh.
Jadi mengapa NodeJS satu-benang tetapi dapat mencapai pelaksanaan tak segerak? Di sini kita pergi ke gambar sebelumnya dan klik pada baris gilir AcaraLihat, prinsip kerja NodeJS sebenarnya ialah gelung peristiwa. Boleh dikatakan bahawa setiap bahagian logik NodeJS ditulis dalam fungsi panggil balik, dan fungsi panggil balik dilaksanakan secara tidak segerak selepas kembali!
Melihat ini, anda pasti tertanya-tanya, jika semua pemprosesan NodeJS tidak segerak, bukankah ia akan berjaya? Salah, salah, salah! Sudah tentu tidak, jangan lupa, asas untuk NodeJS melaksanakan ini ialah benang tunggal. Betul, single threaded! Satu benang mengendalikan semua operasi!
Anda boleh bayangkan bahawa NodeJS berhadapan dengan 100,000 pengguna serentak dalam angin sejuk OK, tiada masalah datang dan dilemparkan ke dalam bandar, dan yang lain muncul tercampak ke dalam bandar semula. Semua orang di bandar adalah tentera dan boleh mencerna musuh-musuh ini dengan baik. Tetapi jika watak seperti Zhang Fei dan Zhao Yun muncul, Node lama akan berasa sengsara dia melawan Zhang Fei selama 300 pusingan, melumpuhkannya, dan kemudian melemparkannya ke dalam bandar. Kemudian 100,000 tentera di belakang perlu menunggu 300 pusingan ini. . .
Jadi apakah maksudnya? Ini bermakna NodeJS tidak menyekat, tetapi menyekat tidak berlaku dalam proses panggil balik berikutnya, tetapi berlaku dalam pengiraan dan pemprosesan logik oleh NodeJS sendiri. Kita sedia maklum bahawa NodeJS mempunyai keupayaan pengedaran yang sangat berkuasa dan boleh menggelungkan peristiwa untuk panggilan balik tak segerak. Tetapi jika anda menghadapi operasi logik yang kompleks semasa menggelungkan peristiwa, bagaimanakah satu utas nipis boleh menyokong berjuta-juta konkurensi logik? Semua operasi NodeJS yang memakan masa seperti I/O dan komunikasi rangkaian boleh diserahkan kepada rangkaian pekerja untuk pelaksanaan dan panggilan balik, jadi ia sangat pantas. Tetapi untuk operasi biasa CPU, ia hanya boleh menahan sendiri.
Setelah berkata demikian, anda mungkin mempunyai gambaran kasar tentang ciri-ciri NodeJS. Jadi senario yang berkenaan pada dasarnya sedia untuk datang~!
3. Senario aplikasi NodeJS
Memandangkan NodeJS mempunyai keupayaan yang kuat untuk mengendalikan konkurensi, tetapi keupayaan lemah untuk mengendalikan pengiraan dan logik, oleh itu, jika kita meletakkan operasi Logik yang kompleks dipindahkan ke bahagian hadapan (klien) untuk dilengkapkan, dan NodeJS hanya perlu menyediakan I/O tak segerak, supaya pemprosesan berkonkurensi tinggi dan berprestasi tinggi boleh dicapai. Terdapat banyak situasi, seperti: RESTFUL API, sembang masa nyata, APP halaman tunggal dengan logik pelanggan yang kukuh termasuk: aplikasi muzik dalam talian setempat, aplikasi carian dalam talian setempat, APP dalam talian setempat, dsb.
Omong-omong, Apache telah banyak ditindas, jadi berikan saya tarikh manis. Apache mempunyai ciri-ciri ruang alamat memori bersama konkurensi tinggi berbilang benang, yang bermaksud bahawa jika pelayan cukup berkuasa dan pemproses mempunyai teras yang cukup tinggi, Apache akan beroperasi dengan baik, jadi ia sesuai untuk pemprosesan tak segerak (serentak) dengan relatif beberapa latar belakang Aplikasi yang memerlukan pengiraan berat dan logik perniagaan bahagian belakang yang kompleks.
Pembelajaran yang disyorkan: "tutorial video node.js"
Atas ialah kandungan terperinci Apakah itu node.js? Apakah senario yang berkenaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

React adalah rangka kerja front-end untuk membina antara muka pengguna; Rangka kerja back-end digunakan untuk membina aplikasi sisi pelayan. React menyediakan kemas kini UI yang komponen dan cekap, dan Rangka Kerja Backend menyediakan penyelesaian perkhidmatan backend lengkap. Apabila memilih timbunan teknologi, keperluan projek, kemahiran pasukan, dan skalabiliti harus dipertimbangkan.

Hubungan antara HTML dan React adalah teras pembangunan front-end, dan mereka bersama-sama membina antara muka pengguna aplikasi web moden. 1) HTML mentakrifkan struktur kandungan dan semantik, dan React membina antara muka dinamik melalui komponenisasi. 2) Komponen React Gunakan sintaks JSX untuk membenamkan HTML untuk mencapai rendering pintar. 3) Kitaran Hayat Komponen Menguruskan Rendering HTML dan Kemas kini secara dinamik mengikut keadaan dan atribut. 4) Gunakan komponen untuk mengoptimumkan struktur HTML dan meningkatkan keupayaan. 5) Pengoptimuman prestasi termasuk mengelakkan penyampaian yang tidak perlu, menggunakan atribut utama, dan menjaga tanggungjawab tunggal komponen.

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, dengan komponen terasnya dan pengurusan negeri. 1) Memudahkan pembangunan UI melalui komponen dan pengurusan negeri. 2) Prinsip kerja termasuk perdamaian dan rendering, dan pengoptimuman dapat dilaksanakan melalui React.Memo dan Usememo. 3) Penggunaan asas adalah untuk membuat dan membuat komponen, dan penggunaan lanjutan termasuk menggunakan cangkuk dan konteksapi. 4) Kesalahan biasa seperti kemas kini status yang tidak betul, anda boleh menggunakan ReactDevTools untuk debug. 5) Pengoptimuman prestasi termasuk menggunakan react.memo, senarai virtualisasi dan codesplitting, dan menyimpan kod yang boleh dibaca dan dikekalkan adalah amalan terbaik.

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

Komponen React boleh ditakrifkan oleh fungsi atau kelas, merangkumi logik UI dan menerima data input melalui prop. 1) Tentukan komponen: Gunakan fungsi atau kelas untuk mengembalikan elemen bertindak balas. 2) Rendering Component: React Call Render Kaedah atau Melaksanakan Komponen Fungsi. 3) Komponen multiplexing: Lulus data melalui prop untuk membina UI yang kompleks. Pendekatan kitaran hayat komponen membolehkan logik dilaksanakan pada peringkat yang berbeza, meningkatkan kecekapan pembangunan dan pemeliharaan kod.

React Mode Strict adalah alat pembangunan yang menyoroti isu -isu yang berpotensi dalam aplikasi React dengan mengaktifkan cek tambahan dan amaran. Ia membantu mengenal pasti kod warisan, hayat yang tidak selamat, dan kesan sampingan, menggalakkan amalan reaksi moden.

Serpihan bertindak balas membolehkan kumpulan kanak -kanak tanpa nod dom tambahan, meningkatkan struktur, prestasi, dan kebolehaksesan. Mereka menyokong kekunci untuk rendering senarai yang cekap.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan