Rilaxx ta' JavaScript Node.js 13.0 min-naħa tas-server

Disponibbli rilaxx Node.js 13.0,Pjattaformi għat-tħaddim ta' applikazzjonijiet tan-netwerk f'JavaScript. Fl-istess ħin, tlestiet l-istabbilizzazzjoni tal-fergħa preċedenti ta 'Node.js 12.x, li ġiet trasferita għall-kategorija ta' rilaxxi ta 'appoġġ fit-tul, li l-aġġornamenti tagħhom huma rilaxxati għal 4 snin. L-appoġġ għall-fergħa LTS preċedenti ta 'Node.js 10.0 se jdum sa April 2021, u l-appoġġ għall-aħħar fergħa LTS 8.0 sa Jannar 2020.

Il-prinċipali titjib:

  • Magna V8 aġġornata għall-verżjoni 7.8, li juża tekniki ġodda ta 'ottimizzazzjoni tal-prestazzjoni, itejjeb id-destrutturar tal-oġġetti, inaqqas il-konsum tal-memorja, u jnaqqas il-ħin ta' preparazzjoni għall-eżekuzzjoni tal-WebAssembly;
  • L-appoġġ sħiħ għall-internazzjonalizzazzjoni u l-Unicode ibbażat fuq il-librerija huwa attivat awtomatikament ICU (Komponenti Internazzjonali għal Unicode), li tippermetti lill-iżviluppaturi jiktbu kodiċi appoġġ taħdem b'lingwi u lokalitajiet differenti. Il-modulu full-icu issa huwa installat awtomatikament;
  • API stabbilizzat Ħjut tal-Ħaddiema, tippermetti toħloq loops ta 'avvenimenti b'ħafna kamini. L-implimentazzjoni hija bbażata fuq il-modulu worker_threads, li jippermettilek tħaddem kodiċi JavaScript f'ħjut paralleli multipli. L-appoġġ stabbli għall-API Workers Threads ġie wkoll backported għall-fergħa LTS ta 'Node.js 12.x;
  • Ir-rekwiżiti għall-pjattaformi żdiedu. Għall-assemblaġġ issa meħtieġa mill-inqas macOS 10.11 (jeħtieġ Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Appoġġ imtejjeb għal Python 3. Jekk is-sistema għandha kemm Python 2 kif ukoll Python 3, Python 2 għadu jintuża, iżda ġiet miżjuda l-abbiltà li tinbena meta Python 3 biss ikun installat fuq is-sistema;
  • L-implimentazzjoni l-antika tal-parser HTTP (“—http-parser=legacy”) tneħħiet. Sejħiet u proprjetajiet imneħħija jew deprecati FSWatcher.prototype.start(), ChildProcess._channel, open() metodu fl-oġġetti ReadStream u WriteStream, request.connection, response.connection, module.createRequireFromPath ();
  • Sussegwentement ħareġ aġġornament 13.0.1, li malajr irranġa diversi bugs. B'mod partikolari, il-problema li npm 6.12.0 juri twissija dwar l-użu ta' verżjoni mhux appoġġjata ġiet solvuta.

Ejja nfakkru li l-pjattaforma Node.js tista 'tintuża kemm għall-appoġġ tas-server tal-applikazzjonijiet tal-Web kif ukoll għall-ħolqien ta' programmi ordinarji tan-netwerk tal-klijenti u tas-server. Biex tespandi l-funzjonalità ta 'applikazzjonijiet għal Node.js, numru kbir ta' ġbir ta' moduli, li fiha tista 'ssib moduli bl-implimentazzjoni ta' servers u klijenti HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli għall-integrazzjoni ma 'diversi oqfsa tal-web, WebSocket u Ajax handlers, konnetturi għal DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), magni tal-mudelli, magni CSS, implimentazzjonijiet ta 'algoritmi kriptografiċi u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.

Biex jimmaniġġa għadd kbir ta 'talbiet paralleli, Node.js juża mudell ta' eżekuzzjoni ta 'kodiċi asinkroniku bbażat fuq proċessar ta' avvenimenti li ma jimblokkax u jiddefinixxi callback handlers. Metodi appoġġjati għall-konnessjonijiet multiplexing jinkludu epoll, kqueue, /dev/poll, u select. Il-librerija hija użata biex konnessjonijiet multiplex libuv, li hija sovrastruttura fuq libev fuq sistemi Unix u fuq IOCP fuq Windows. A librerija hija użata biex tinħoloq pool ta 'ħajt libeio, għat-twettiq ta 'mistoqsijiet DNS fil-mod li ma jimblokkax huwa integrat c-ares. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti fil-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jgħaddu r-riżultat tax-xogħol tagħhom lura minn pajp bla isem. L-eżekuzzjoni tal-kodiċi JavaScript hija żgurata permezz tal-użu ta 'magna żviluppata minn Google V8 (Barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core).

Fil-qalba tiegħu, Node.js huwa simili għal oqfsa Perl AnyEvent, Magni tal-Avveniment Ruby, Python Twisted и implimentazzjoni avvenimenti f'Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-immaniġġjar tal-avvenimenti f'applikazzjoni tal-web li taħdem f'browser. Meta tikteb applikazzjonijiet għal node.js, huwa meħtieġ li jitqiesu l-ispeċifiċitajiet tal-programmazzjoni mmexxija mill-avvenimenti, pereżempju, minflok ma tagħmel "var result = db.query ("select..");" bl-istennija għat-tlestija tax-xogħol u l-ipproċessar sussegwenti tar-riżultati, Node.js juża l-prinċipju ta 'eżekuzzjoni asinkronika, i.e. il-kodiċi jinbidel fi "db.query ("select..", funzjoni (riżultat) {proċessar tar-riżultat});", li fih il-kontroll jgħaddi immedjatament għal aktar kodiċi, u r-riżultat tal-mistoqsija jiġi pproċessat hekk kif tasal id-data. .

Sors: opennet.ru

Żid kumment