Rumah  >  Artikel  >  hujung hadapan web  >  Adakah nodejs js?

Adakah nodejs js?

青灯夜游
青灯夜游asal
2021-11-01 15:34:163121semak imbas

Nodejs bukan js, tetapi platform yang membenarkan js dijalankan pada pelayan. js (nama penuh JavaScript) ialah bahasa pengaturcaraan, dan Node ialah persekitaran berjalan JavaScript berdasarkan enjin Chrome V8, platform pembangunan yang membenarkan JavaScript berjalan pada pelayan.

Adakah nodejs js?

Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.

Nodejs bukan js, tetapi platform yang membenarkan js dijalankan pada pelayan.

Node.js telah dikeluarkan pada Mei 2009 dan dibangunkan oleh Ryan Dahl Ia adalah persekitaran berjalan JavaScript berdasarkan enjin Chrome V8 Ia menggunakan model I/O yang dipacu peristiwa untuk membenarkan JavaScript untuk dijalankan dalam Platform pembangunan sebelah pelayan yang menjadikan JavaScript sebagai bahasa skrip setanding dengan bahasa sebelah pelayan seperti PHP, Python, Perl dan Ruby.

JavaScript boleh melaksanakan pengaturcaraan sebelah pelayan berdasarkan teknologi Node.js.

Ciri Node.js

Io tak segerak tidak menyekat

Sebagai contoh, apabila mengakses Apabila pangkalan data memperoleh data, ia mengambil sedikit masa. Dalam mekanisme pemprosesan satu utas tradisional, selepas melaksanakan kod untuk mengakses pangkalan data, keseluruhan utas akan berhenti seketika dan menunggu pangkalan data mengembalikan hasilnya sebelum melaksanakan kod berikutnya. Dalam erti kata lain, I/O menyekat pelaksanaan kod dan sangat mengurangkan kecekapan pelaksanaan program.

Disebabkan mekanisme I/O tidak menyekat yang digunakan dalam Node.js, selepas kod yang mengakses pangkalan data dilaksanakan, kod di belakangnya akan dilaksanakan dan kod pemprosesan untuk pangkalan data mengembalikan hasil akan diletakkan dalam fungsi panggil balik, sekali gus meningkatkan kecekapan pelaksanaan program.

Apabila I/O selesai, utas yang menjalankan operasi I/O akan dimaklumkan dalam bentuk acara dan utas akan melaksanakan fungsi panggil balik acara ini. Untuk mengendalikan I/O tak segerak, utas mesti mempunyai gelung peristiwa, sentiasa menyemak sama ada terdapat peristiwa yang tidak dikendalikan dan memprosesnya secara bergilir.

Dalam mod menyekat, satu utas hanya boleh mengendalikan satu tugasan Untuk meningkatkan daya pemprosesan, pelbagai benang mesti digunakan. Dalam mod tidak menyekat, benang sentiasa menjalankan operasi pengiraan, dan penggunaan teras CPU bagi benang ini sentiasa 100%. Oleh itu, ini adalah penyelesaian falsafah yang khusus: Daripada membuat ramai orang terbiar, adalah lebih baik bagi seseorang untuk mempertaruhkan nyawanya dan bekerja hingga mati.

Berutas tunggal

Dalam bahasa sebelah pelayan seperti Java, PHP atau .net, urutan baharu dibuat untuk setiap sambungan pelanggan. Setiap urutan memerlukan lebih kurang 2MB memori. Dalam erti kata lain, secara teorinya, bilangan maksimum pengguna yang boleh disambungkan ke pelayan dengan memori 8GB pada masa yang sama adalah kira-kira 4,000. Untuk membolehkan aplikasi Web menyokong lebih ramai pengguna, bilangan pelayan perlu ditambah, dan kos perkakasan aplikasi Web sudah tentu akan meningkat.

Node.js tidak mencipta urutan baharu untuk setiap sambungan pelanggan, tetapi hanya menggunakan satu urutan. Apabila pengguna menyambung, peristiwa dalaman dicetuskan Melalui mekanisme I/O yang tidak menyekat dan dipacu peristiwa, program Node.js adalah selari secara makroskopik. Menggunakan Node.js, pelayan dengan memori 8GB boleh mengendalikan lebih daripada 40,000 sambungan pengguna secara serentak.

Selain itu, dengan faedah benang tunggal, sistem pengendalian tidak lagi mempunyai masa overhed untuk penciptaan dan pemusnahan benang. Walau bagaimanapun, threading tunggal juga mempunyai banyak kelemahan, yang akan diterangkan secara terperinci dalam keburukan Node.js, sila teruskan membaca.

Didorong peristiwa

Dalam Node, apabila pelanggan meminta untuk mewujudkan sambungan, menyerahkan data dan gelagat lain, peristiwa yang sepadan akan dicetuskan. Dalam Node, hanya satu fungsi panggil balik acara boleh dilaksanakan pada satu masa, tetapi di tengah-tengah melaksanakan fungsi panggil balik acara, peristiwa lain berlaku dan acara lain boleh diproses sebaliknya (contohnya, pengguna baharu menyambung), dan kemudian Kembali fungsi panggil balik yang terus melaksanakan acara asal mekanisme pemprosesan ini dipanggil mekanisme "gelung peristiwa".

Lapisan bawah Node.js ialah C (V8 juga ditulis dalam C). Hampir separuh daripada kod asas digunakan untuk pembinaan baris gilir acara dan baris gilir fungsi panggil balik. Menggunakan didorong peristiwa untuk melengkapkan penjadualan tugas pelayan adalah sesuatu yang hanya boleh difikirkan oleh seorang genius. Tarian di hujung jarum, dengan satu utas, mengambil misi mengendalikan banyak tugas.

Adakah nodejs js?

Perhatikan gelung acara di sini, yang juga boleh dikatakan sebagai intipati Node.js Berikut ialah petikan daripada tapak web rasmi Node.js >

  ┌───────────────────────────┐
┌─>│           timers          │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     pending callbacks     │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       idle, prepare       │
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   incoming:   │
│  │           poll            │<─────┤  connections, │
│  └─────────────┬─────────────┘      │   data, etc.  │
│  ┌─────────────┴─────────────┐      └───────────────┘
│  │           check           │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
└──┤      close callbacks      │
   └───────────────────────────┘
Memetik petikan daripada tapak web rasmi Node:

Nota: Setiap kotak akan dipanggil "peringkat" gelung acara.

Setiap peringkat mempunyai baris gilir panggilan balik FIFO untuk dilaksanakan. Walaupun setiap peringkat adalah istimewa dengan caranya sendiri, secara amnya apabila gelung acara memasuki peringkat tertentu, ia akan melaksanakan sebarang operasi khusus untuk peringkat itu dan kemudian melaksanakan panggilan balik pada baris gilir peringkat tersebut sehingga baris gilir habis atau bilangan panggilan balik maksimum telah telah dilaksanakan. Apabila baris gilir habis atau had panggil balik dicapai, gelung acara bergerak ke fasa seterusnya, dan seterusnya.
Mengenai gelung acara, yang merupakan titik teras, penemuduga sering bertanya soalan tentang output pelaksanaan tertentu Anda boleh membaca artikel saya

Merentas platform.

Pada mulanya, Node hanya boleh dijalankan pada platform Linux. Kemudian, dengan pembangunan Node, Microsoft menyedari kewujudannya dan melaburkan satu pasukan untuk membantu Node mencapai keserasian dengan platform Windows Apabila versi v0.6.0 dikeluarkan, Node sudah boleh berjalan terus pada platform Window. Nod ialah platform merentas berdasarkan libuv.

Kelemahan Node.js

Kelemahan utas tunggal

Node.js Salah satu ciri-ciri adalah single-threading, yang membawa banyak faedah, tetapi ia juga mempunyai kelemahan Kelemahan single-threading adalah seperti berikut.

  • Tidak dapat menggunakan CPU berbilang teras

  • Ralat akan menyebabkan keseluruhan aplikasi keluar dan tidak boleh terus memanggil I/O tak segerak

  • Sejumlah besar pengiraan menduduki CPU, menjadikannya mustahil untuk terus memanggil I/O tak segerak

Senario aplikasi daripada Node.js

Memperkenalkan ciri dan keburukan Node.js, dan kemudian bercakap tentang senario aplikasi Node.js.

Apakah jenis aplikasi Node.js sesuai untuk dibangunkan?

Pandai I/O, tak pandai kira. Kerana Node.js adalah yang terbaik dalam penjadualan tugas, jika perniagaan anda mempunyai banyak pengiraan CPU, ini sebenarnya bermakna pengiraan ini menyekat urutan tunggal ini, yang tidak sesuai untuk pembangunan Node, tetapi ia bukan tanpa penyelesaian, hanya dengan mengatakan Tidak cukup sesuai.

Node.js sangat sesuai apabila aplikasi perlu mengendalikan sejumlah besar I/O serentak dan tidak memerlukan pemprosesan yang sangat kompleks dalam aplikasi sebelum menghantar respons kepada pelanggan. Node.js juga sangat sesuai untuk bekerja dengan soket web untuk membangunkan aplikasi interaktif masa nyata dengan sambungan yang panjang.

Senario khusus boleh dinyatakan seperti berikut:

  • Kategori pertama: sistem pengumpulan borang pengguna, sistem pengurusan latar belakang, sistem interaksi masa nyata, sistem peperiksaan, rangkaian perisian, aplikasi web Concurrency mewah;

  • Kategori kedua: permainan dalam talian berbilang pemain berdasarkan web, kanvas dan lain-lain

  • Yang ketiga kategori : Pelanggan sembang masa nyata berbilang orang berasaskan web, ruang sembang, siaran langsung grafik; 🎜 >

    Kategori kelima: mengendalikan pangkalan data, menyediakan API berasaskan json untuk terminal hadapan dan mudah alih;
  • Kategori keenam,…
  • Syarikat besar manakah yang menggunakannya?
Yahoo: Yahoo telah membuka rangka kerja Cooktail, memperluaskan keupayaan rangka kerja bahagian hadapan YUI3 kepada bahagian pelayan dengan bantuan Node.

Tencent: Gunakan Nod pada sambungan panjang untuk menyediakan kefungsian masa nyata.
  • Huaban.com, Mogujie: Pemberitahuan masa nyata melalui socket.io.
  • Alibaba: Kegunaan utama ialah prestasi I/O selari untuk mencapai pengedaran yang cekap Mereka juga mempunyai banyak rangka kerja Nod
  • LinkedIn: Tapak web mudah alih juga menggunakan Node
  • NetEase: Medan permainan mempunyai keperluan yang tinggi untuk konkurensi dan masa nyata, dan NetEase mempunyai rangka kerja masa nyata Node sumber terbuka pomelo
  • Tunggu...
  • [Pembelajaran yang disyorkan: "
  • tutorial nodejs
  • "]

Atas ialah kandungan terperinci Adakah nodejs js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:apa itu javascript uberArtikel seterusnya:apa itu javascript uber