{"id":115312,"date":"2024-04-25T09:22:49","date_gmt":"2024-04-25T07:22:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/dostupna-javascript-platforma-node-js-22-0-0"},"modified":"2024-04-25T09:22:49","modified_gmt":"2024-04-25T07:22:49","slug":"dostupna-javascript-platforma-node-js-22-0-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/dostupna-javascript-platforma-node-js-22-0-0","title":{"rendered":"\u00c8 disponibile la piattaforma JavaScript Node.js 22.0.0.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stato rilasciato Node.js 22.0, una piattaforma per l'esecuzione di applicazioni di rete in JavaScript. Node.js 22.0 \u00e8 stato assegnato ai rami con supporto a lungo termine, ma questo status sar\u00e0 confermato solo a ottobre, dopo la fase di stabilizzazione. Il supporto per Node.js 22.x continuer\u00e0 fino al 30 aprile 2027. Il supporto per l'ultimo ramo LTS Node.js 20.x durer\u00e0 fino ad aprile 2026, mentre per il ramo LTS precedente 18.x fino ad aprile 2025. Il supporto per il ramo intermedio Node.js 21.x sar\u00e0 interrotto il 1\u00b0 giugno 2024.        <\/p>\n<p>Principali miglioramenti:  <\/p>\n<ul>\n<li class=\"l\"> Il motore V8 \u00e8 stato aggiornato alla versione 12.4, utilizzata in Chromium 124. Tra le modifiche rispetto al ramo Node.js 21, che utilizzava il motore V8 11.8, si segnala:\n<ul>\n<li class=\"l\"> Supporto per l'estensione WasmGC, che semplifica il porting in WebAssembly delle applicazioni scritte in linguaggi di programmazione che utilizzano un garbage collector (Kotlin, PHP, Java, ecc.). WasmGC introduce nuovi tipi di strutture e array per i quali pu\u00f2 essere applicato un'allocazione di memoria non lineare.\n<li class=\"l\"> Supporto per il metodo Array.fromAsync(), che restituisce in modalit\u00e0 asincrona una nuova istanza dell'oggetto Array, copiata da oggetti simili a un array, enumerabili (iterable) o enumerabili in modo asincrono (async iterable).\n<li class=\"l\"> Supporto per metodi di lavoro con iteratori come .map, .filter, .find, .take, .drop, .forEach e .reduce.\n<li class=\"l\"> Supporto per l'oggetto Set, che definisce una collezione di valori e offre metodi con l'implementazione delle operazioni tipiche sui set, come intersezioni, unioni, differenze e complemento.        <\/ul>\n<li class=\"l\"> Includo di default il compilatore JIT ottimizzante Maglev, mirato a generare rapidamente codice macchina ad alte prestazioni per il codice JavaScript utilizzato attivamente. L'attivazione di Maglev consente di accelerare notevolmente le applicazioni CLI a vita breve che non eseguono operazioni prolungate, ad esempio, il tempo necessario per il test Jetstream \u00e8 ridotto del 7,5%, mentre per il test Speedometer del 5%.\n<li class=\"l\"> La gestione dei flussi \u00e8 stata accelerata aumentando il valore dell'opzione highWaterMark da 16 KB a 65 KB (definisce il limite entro il quale viene eseguita la memorizzazione nella scrittura). Questa modifica comporta un aumento del consumo di memoria, quindi per le applicazioni progettate per operare con una memoria RAM limitata potrebbe essere necessario ripristinare il valore precedente tramite la chiamata setDefaultHighWaterMark().\n<li class=\"l\"> Le prestazioni dell'API fetch() e del test runner sono state potenziate grazie all'efficienza migliorata nella creazione di istanze di AbortSignal. Migliorate anche le performance delle API relative all'interazione sincrona con i file di sistema.\n<li class=\"l\"> \u00c8 stata fornita un'opzione sperimentale per utilizzare la chiamata &#171;require()&#187; per caricare moduli JavaScript ESM (ECMAScript Modules) in modo sincrono. I moduli ESM sono utilizzati nei browser e stanno sostituendo i moduli CommonJS, specifici per Node.js. Per caricare un modulo ESM tramite &#171;require()&#187;, il modulo deve essere eseguito in modalit\u00e0 sincrona (senza await a livello superiore). Il supporto \u00e8 attivato tramite il flag &#171;&#8212;experimental-require-module&#187;.\n<li class=\"l\"> \u00c8 stata aggiunta un'opzione sperimentale per eseguire script definiti nel file package.json, utilizzando il comando &#171;&#8212;run &lt;script-in-package-json&gt;&#187;.\n<li class=\"l\"> Il comando &#171;node &#8212;watch&#187; \u00e8 stato spostato nella categoria stabile, implementando la modalit\u00e0 di osservazione che consente il riavvio del processo al cambiamento del file importato (ad esempio, eseguendo &#171;node &#8212;watch index.js&#187;, il processo verr\u00e0 automaticamente riavviato al cambiamento di index.js).\n<li class=\"l\"> Stabilizzata l'implementazione interna dell'API WebSocket, che consente di utilizzare WebSocket in modalit\u00e0 client senza installare dipendenze aggiuntive.\n<li class=\"l\"> Aggiunto supporto parziale per l'API Navigator.\n<li class=\"l\"> Nell'API Webstreams \u00e8 stato aggiunto il supporto per il formato di compressione deflate-raw.\n<li class=\"l\"> Nel modulo node:fsmodule sono state aggiunte le funzioni glob e globSync per il matching dei percorsi dei file in base a pattern.\n<li class=\"l\"> Migliorato il trattamento di stack IPv6 configurati in modo non corretto. Implementato l'algoritmo Happy Eyeballs per un rapido fallback in caso di problemi con l'implementazione di IPv6.\n<li class=\"l\"> L'API util \u00e8 stata dichiarata obsoleta.\n<li class=\"l\"> Aggiornate le versioni delle dipendenze: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson a 3.8.0, ada 2.7.7 e undici 6.6.0.    <\/ul>\n<p>La piattaforma Node.js pu\u00f2 essere utilizzata sia per il supporto server lato Web di applicazioni che per creare normali programmi client e server di rete. Per espandere la funzionalit\u00e0 delle applicazioni Node.js \u00e8 stata preparata una vasta collezione di moduli, in cui si possono trovare moduli con implementazione  <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/it\/server\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1550\">server<\/a> e client HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per integrazioni con diversi framework web, gestori WebSocket e Ajax, connettori a DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motori di templating, motori CSS, implementazioni di algoritmi crittografici e sistemi di autorizzazione (OAuth), parser XML.    <\/p>\n<p> Per garantire la gestione di un gran numero di richieste parallele, Node.js utilizza un modello asincrono per l'esecuzione del codice, basato sul trattamento degli eventi in modalit\u00e0 non bloccante e sulla definizione di gestori di callback. Tra i metodi di multiplexing delle connessioni sono supportati metodi come epoll, kqueue, \/dev\/poll e select. Per il multiplexing delle connessioni viene utilizzata la libreria libuv, che \u00e8 un'astrazione sulla libev nei sistemi Unix e su IOCP in Windows. Per la creazione di un pool di thread viene utilizzata la libreria libeio; per l'esecuzione di richieste DNS in modalit\u00e0 non bloccante viene integrata c-ares. Tutte le chiamate di sistema che comportano blocchi vengono eseguite all'interno del pool di thread e poi, come i gestori di segnali, restituiscono il risultato del loro lavoro tramite un canale non nominato (pipe).     <\/p>\n<p>L'esecuzione del codice JavaScript \u00e8 garantita attraverso l'uso del motore V8 sviluppato da Google (inoltre, Microsoft sviluppa una variante di Node.js con il motore Chakra-Core). Fondamentalmente, Node.js \u00e8 simile a framework come Perl AnyEvent, Ruby Event Machine, Python Twisted e all'implementazione degli eventi in Tcl, ma il ciclo di elaborazione degli eventi (event loop) in Node.js \u00e8 nascosto agli sviluppatori e ricorda la gestione degli eventi in un'app web che funziona nel browser.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61067\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 22.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript. Node.js 22.0 \u043e\u0442\u043d\u0435\u0441\u0451\u043d \u043a \u0432\u0435\u0442\u043a\u0430\u043c \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u043a\u0442\u044f\u0431\u0440\u0435, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Node.js 22.x \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e 30 \u0430\u043f\u0440\u0435\u043b\u044f 2027 \u0433\u043e\u0434\u0430. \u0421\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 Node.js 20.x \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2026 \u0433\u043e\u0434\u0430, \u0430 \u043f\u043e\u0437\u0430\u043f\u0440\u043e\u0448\u043b\u043e\u0439 LTS-\u0432\u0435\u0442\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115312","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 22.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/dostupna-javascript-platforma-node-js-22-0-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Node.js 22.0.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 22.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/dostupna-javascript-platforma-node-js-22-0-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-04-25T07:22:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-04-25T07:22:49+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Disponibile la piattaforma JavaScript Node.js 22.0.0 | ProHoster","description":"Rilascio di Node.js 22.0, la piattaforma per l'esecuzione di applicazioni di rete in JavaScript.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/dostupna-javascript-platforma-node-js-22-0-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Node.js 22.0.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 Node.js 22.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 JavaScript.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/dostupna-javascript-platforma-node-js-22-0-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-04-25T07:22:49+00:00","article:modified_time":"2024-04-25T07:22:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115312","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 17:21:17","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-22 23:06:19","updated":"2026-02-09 17:21:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=115312"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115312\/revisions"}],"predecessor-version":[{"id":158794,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/115312\/revisions\/158794"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=115312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=115312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=115312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}