{"id":22755,"date":"2017-03-31T20:02:38","date_gmt":"2017-03-31T18:02:38","guid":{"rendered":"http:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/"},"modified":"2017-03-31T20:02:38","modified_gmt":"2017-03-31T18:02:38","slug":"nodejs-e-possibile-farne-a-meno","status":"publish","type":"post","link":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/","title":{"rendered":"NodeJS: \u00e8 possibile farne a meno?"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div readability=\"57.52555053642\">\n<article readability=\"56.843645230113\">\n<h2>Gestione delle connessioni e concorrenza<\/h2>\n<p>Il runtime offre il supporto per un elevato numero di connessioni concorrenti su un singolo thread, questa caratteristica rende NodeJS una soluzione ideale per la realizzazione di applicazioni che devono gestire grandi quantit\u00e0 di dati e di traffico. A tal proposito basti pensare ad una piattaforma per il commercio elettronico che, per sua natura, dovrebbe consentire a pi\u00f9 utenti di interagire simultaneamente con contenuti differenti.<\/p>\n<p>In ambiente NodeJS un processo viene rappresentato dall&#8217;avviamento di un thread principale al quale si associano diversi thread operanti in background; viene cos\u00ec generata una coda prodotta dalla coordinazione tra il main thread e i thread in background; tale dinamica prevede che il primo estragga i task dalla coda nell&#8217;ordine in cui vengono prodotti e li esegua. <\/p>\n<p>Si tratta di un meccanismo differente da quello di strumenti basati sul parallelismo dei task su thread indipendenti, non sempre esso si traduce nell&#8217;opzione migliore per la gestione delle connessioni, ma rimane il vantaggio derivante dalla gestione semplificata della concorrenza.   <\/p>\n<h2>Prestazioni<\/h2>\n<p>Riprendendo l&#8217;modello dei siti Web dedicati all&#8217;e-commerce, \u00e8 interessante sottolineare come NodeJS rappresenti un environment ottimale per ottenere performance di alto livello. Recenti rilevazioni sottolineano come, ad adesso, i visitatori concedano mediamente non pi\u00f9 di 3 secondi al caricamento di una pagina prima di abbandonarla, \u00e8 poi probabile che con il continuo incremento delle velocit\u00e0 di connessione questo intervallo sia destinato ad assottigliarsi alla esame di una <em>user experience<\/em> sempre pi\u00f9 vicina a quella nativa.<\/p>\n<p>Da questo punto di vista NodeJS ha dalla sua parte la compilazione <strong>JiT<\/strong> (<em>Just in Time<\/em>) basata sul JavaScript engine <strong>V8<\/strong> per la traduzione dinamica. La compilazione JiT garantisce fasi di avviamento che possono tradursi in prestazioni vicine a quelle ottenibili tramite una compilazione diretta in linguaggio macchina, tale risultato \u00e8 possibile unendo le potenzialit\u00e0 della compilazione bytecode alla compilazione nativa.<\/p>\n<h2>Comunicazioni asincrone<\/h2>\n<p>NodeJS supporta le comunicazioni asincrone e consente di veicolare i dati quando disponibili per la trasmissione, in questo modo vengono praticamente rimosse le latenze dovute all&#8217;interscambio client server nella richiesta dei servizi. Tale caratteristica rende l&#8217;environment un backend ideale per le Web application, offrendo tempi di attivazioni prossimi alle esperienze native.<\/p>\n<p>Anche in questo caso entra in videogame il motore JavaScript V8 e la conversione dello stesso JavaScript non in byte code ma in linguaggio macchine nativo; inoltre, V8 non presiede soltanto alle fasi di compilazione ed avviamento del codice sorgente, ma gestisce anche l&#8217;allocazione in memoria degli oggetti e la garbage collection degli oggetti non pi\u00f9 necessari.<\/p>\n<h2>Conclusioni<\/h2>\n<p>Non \u00e8 necessario sostenere che NodeJS sia una soluzione migliore di altre per sottolineare quanto questo ambiente rappresenti uno strumento ottimale per lo sviluppo, si consideri per\u00f2 che parliamo di una competenza che (come sta gi\u00e0 accadendo) sar\u00e0 sempre pi\u00f9 richiesta ai developer, \u00e8 quindi caldamente consigliato inserire l&#8217;utilizzo di NodeJS tra le proprie skill.<\/p>\n<p>Per approfondire: <a href=\"https:\/\/www.brainvire.com\/ecommerce-website-development-node-js-html5\/\" title=\"Ecommerce Website Development with Node.JS and HTML5\" target=\"_blank\">Brainvire<\/a><\/p>\n<p>&#13;<br \/>\n        <!--div class=\"sharelink\">\n              \n\n<ul>\n                  \n\n<li class=\"facebook\"><a href=\"#\" onclick=\"window.open( 'https:\/\/www.facebook.com\/sharer\/sharer.php?u='+encodeURIComponent('http:\/\/blog.html.it\/31\/03\/2017\/nodejs-e-possibile-farne-a-meno\/'),'condividi l'articolo su facebook', 'width=626,height=436,location=no,directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no'); return false;\">Facebook<\/a><\/li>\n\n\n                  \n\n<li class=\"twitter\"><a href=\"#\" onclick=\"window.open( 'https:\/\/twitter.com\/share?url=http%3A%2F%2Fblog.html.it%2F31%2F03%2F2017%2Fnodejs-e-possibile-farne-a-meno%2F&via=html_it&text=NodeJS%3A%20%C3%A8%20possibile%20farne%20a%20meno%3F','condividi l'articolo su twitter', 'width=626,height=436,location=no,directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no'); return false;\">Twitter<\/a><\/li>\n\n\n              <\/ul>\n\n\n          <\/div-->&#13;<br \/>\n&#13;<br \/>\n    <\/article>\n<div readability=\"5.25\">\n\t\t<!--\n\n<style>\n\n.newletter-item, .newsletter-box \n  \/*float: left;\n  margin: 5px 0 20px 0;*\/\n  display: block;\n  width: 100%;\n\n\n.newletter-item, .newsletter-box p \n    font-size: 18px;\n    letter-spacing: 0.3px;\n    line-height: 28px;\n    padding: 0 0 34px 0;\n    color: #161616;\n    font-family: 'Alegreya', serif;\n\n\n.newletter-item, .newsletter-box p span \n  font-weight: bold;\n\n\n.newsletter-box img\n    width: 48px;\n    height: auto;\n    margin: 0 auto 34px auto;\n\n\n.newsletter-panel \n  display: block;\n  width: auto;\n  height: 129px;\n  background: url(http:\/\/www.html.it\/wp-content\/themes\/www.html.it\/images\/newsletter\/newsletter-bg.png) no-repeat;\n  position: relative;\n  left: 0px;\n\n.newsletter-panel form \n  margin: 0;\n\n.newsletter-panel .line-item \n  display: block;\n  float: left;\n  margin: 0 0 0 20px;\n  display: block;\n  width: 408px;\n\n.newsletter-panel input \n  float: left;\n  display: block;\n\n.newsletter-panel input[type=\"text\"] \n  margin: 20px 0 10px 20px;\n  width: 395px;\n  height: 26px;\n  line-height: 26px;\n  padding: 2px;\n\n.newsletter-panel input[type=\"radio\"] \n  margin: 6px 3px 0 0;\n\n.newsletter-panel label.radio-item \n  float: left;\n  display: block;\n  font-size: 1em;\n  width: 10px;\n  margin: 6px 10px 0 0;\n\n.newsletter-panel .lable-text \n  display: block;\n  float: left;\n  width: 240px;\n  font-size: 10px !important;\n  color: #333333 !important;\n  line-height: 130%;\n  margin: 6px 0 0 0px !important;\n\n.newsletter-panel .lable-text a \n  color: #333\n\n.newsletter-panel input[type=\"button\"] \n  position: relative;\n  top: -50px;\n  left: 64px;\n  width: 127px;\n  height: 47px;\n  background: url(http:\/\/www.html.it\/wp-content\/themes\/www.html.it\/images\/newsletter\/newsletter-butt.png) no-repeat;\n  background-repeat: no-repeat;\n  border: 0;\n  cursor: pointer;\n\n.newsletter-panel input[type=\"button\"]:hover \n  background-image: url(http:\/\/www.html.it\/wp-content\/themes\/www.html.it\/images\/newsletter\/newsletter-butt-roll.png);\n\n.newsletter-panel label.radio-item \n  font-size: 10px !important;\n\n.error-newsletter\npadding: 10px 20px;\n\n<\/style>\n\n--><\/p>\n<div id=\"newsletter_div\" class=\"newletter-item nav-txt newsletter-box\" readability=\"6.4615384615385\">\n<p>Se vuoi aggiornamenti su <b>NodeJS: \u00e8 possibile farne a meno?<\/b> inserisci la tua e-mail nel box qui sotto:<\/p>\n<\/div><\/div>\n<\/div>\n<p><br \/>\n<br \/><a href=\"http:\/\/feedproxy.google.com\/~r\/htmlitedit\/~3\/rZZIzG6y-P8\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestione delle connessioni e concorrenza Il runtime offre il supporto per un elevato numero di connessioni concorrenti su un singolo thread, questa caratteristica rende NodeJS una soluzione ideale per la realizzazione di applicazioni che devono gestire grandi quantit\u00e0 di dati e di traffico. A tal proposito basti pensare ad una piattaforma per il commercio elettronico&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":""},"categories":[37],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy\" \/>\n<meta property=\"og:description\" content=\"Gestione delle connessioni e concorrenza Il runtime offre il supporto per un elevato numero di connessioni concorrenti su un singolo thread, questa caratteristica rende NodeJS una soluzione ideale per la realizzazione di applicazioni che devono gestire grandi quantit\u00e0 di dati e di traffico. A tal proposito basti pensare ad una piattaforma per il commercio elettronico...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Agency Italia Web Designer realizzazione siti web Italy\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-31T18:02:38+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/\",\"url\":\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/\",\"name\":\"NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy\",\"isPartOf\":{\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/#website\"},\"datePublished\":\"2017-03-31T18:02:38+00:00\",\"dateModified\":\"2017-03-31T18:02:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.multimediaweb.eu\/web-agency\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"NodeJS: \u00e8 possibile farne a meno?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/#website\",\"url\":\"https:\/\/www.multimediaweb.eu\/web-agency\/\",\"name\":\"Web Agency Italia Web Designer realizzazione siti web Italy\",\"description\":\"Web design creazione siti web Italia\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.multimediaweb.eu\/web-agency\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\/\/www.multimediaweb.eu\/web-agency\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/","og_locale":"it_IT","og_type":"article","og_title":"NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy","og_description":"Gestione delle connessioni e concorrenza Il runtime offre il supporto per un elevato numero di connessioni concorrenti su un singolo thread, questa caratteristica rende NodeJS una soluzione ideale per la realizzazione di applicazioni che devono gestire grandi quantit\u00e0 di dati e di traffico. A tal proposito basti pensare ad una piattaforma per il commercio elettronico...","og_url":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/","og_site_name":"Web Agency Italia Web Designer realizzazione siti web Italy","article_published_time":"2017-03-31T18:02:38+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/","url":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/","name":"NodeJS: \u00e8 possibile farne a meno? - Web Agency Italia Web Designer realizzazione siti web Italy","isPartOf":{"@id":"https:\/\/www.multimediaweb.eu\/web-agency\/#website"},"datePublished":"2017-03-31T18:02:38+00:00","dateModified":"2017-03-31T18:02:38+00:00","author":{"@id":"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42"},"breadcrumb":{"@id":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.multimediaweb.eu\/web-agency\/nodejs-e-possibile-farne-a-meno\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.multimediaweb.eu\/web-agency\/"},{"@type":"ListItem","position":2,"name":"NodeJS: \u00e8 possibile farne a meno?"}]},{"@type":"WebSite","@id":"https:\/\/www.multimediaweb.eu\/web-agency\/#website","url":"https:\/\/www.multimediaweb.eu\/web-agency\/","name":"Web Agency Italia Web Designer realizzazione siti web Italy","description":"Web design creazione siti web Italia","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.multimediaweb.eu\/web-agency\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42","name":"admin","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.multimediaweb.eu\/web-agency\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.multimediaweb.eu\/web-agency\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/posts\/22755"}],"collection":[{"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/comments?post=22755"}],"version-history":[{"count":1,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/posts\/22755\/revisions"}],"predecessor-version":[{"id":22756,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/posts\/22755\/revisions\/22756"}],"wp:attachment":[{"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/media?parent=22755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/categories?post=22755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.multimediaweb.eu\/web-agency\/wp-json\/wp\/v2\/tags?post=22755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}