Web应用开发为什么选择Node.js

Web应用开发为什么选择Node.js,第1张

这次给大家带来Web应用开发为什么选择Nodejs,Web应用开发选择Nodejs的注意事项有哪些,下面就是实战案例,一起来看一下。

一项颠覆性的技术进入技术市场总会带来一阵震惊,但随之而来往往是被放弃。然而,Nodejs 当然不是这样的情况,它是一个开源的、跨平台的基于 Chrome 的 JavaScript 运行时。Nodejs 由 Ryan Dahl 于 2009 年开发,该平台现在已成为实时 Web 应用开发的独特选择,通过提供高度交互的用户体验来提高 ROI。

使用 Nodejs 的最大优点是开发人员可以在客户端和服务器端编写 JavaScript。值得一提的是,像 PayPal, Yahoo, eBay, Netflix, The Mail Online, 和 Walmart 这样的企业已经通过使用 Nodejs 实现了各自的业务。继续阅读下面的内容,了解大多数企业选择 Nodejs 开发 Web App 的十大主要原因。

使用 Nodejs 进行 Web App 开发人气暴涨背后的十大原因:

Image Source: CronJ

1 加快开发进度Nodejs 使用由 Google 开发的 V8 引擎,它可以将 JavaScript 编译成原生机器码并快速执行。由于 Nodejs 使用事件驱动的非阻塞 I/O 模型,因此对于内存使用和数据密集的实时 Web 应用十分高效和轻便,可在多个设备上工作。

使用 Nodejs,可以非常快速地执行常见的 Web 应用任务,例如读取或写入数据库,读取或写入网络连接,以及读取或写入文件系统。Nodejs 对于希望构建快速、强大的 Web 应用的开发人员来说是一个福音,它可以有效地处理并行连接并增加吞吐量。

在 LinkedIn 选择了 Nodejs 之后,它的移动流量大幅上升,而且服务器的数量从 30 个减少到 3 个。PayPal 是另一个受益于 Nodejs 的案例。在使用 Nodejs 之后,PayPal 的响应时间缩短了 35%,与之前相比,每秒处理双倍的请求。可在包括 Microsoft Windows, Mac OS X, 和 Unix 在内的多个服务器上运行 Nodejs 应用。

2 非常适合实时应用程序开发

Image Source: agriyaservicesblogspotcom

当前几乎每个公司都会实时查找用户信息。一个简单的原因是,在生成客户信息时,可靠地访问客户信息为业务销售提供了重要的推动途径,通过为用户提供实际寻找的内容,而不是对其感兴趣的随机性。而且在过去的几年里,使用 Nodejs 构建实时 Web APP 已经成为最佳方法。

使用 Nodejs,所有与底层套接字和协议有关的担心都会烟消云散。使用 Nodejs,可以像在 PHP 中创建一个简单的博客一样快速构建一个实时的 Web 应用。Nodejs 非常适合多用户实时 Web 应用的场景,如游戏和聊天应用。多用户功能由事件循环通过 WebSocket 协议解决,该协议在 TCP 上工作。它还可以为 Web 开发防止 HTTP 的过度开销。

3 数据流

mage Source: Quora

虽然 HTTP 请求和响应被认为是两个孤立的事件,但实际上它们是数据流。Nodejs 的好处在于它可以在上传时进行文件处理。因此,在数据以流的形式出现的情况下,可以节省在整体流程中所浪费的大量时间。实时视频或音频也是这样的情况。

4 Nodejs 是无处不在的在浏览器和服务器都可以使用 JavaScript。如果一家公司需要为浏览器端更改构建逻辑以转移到服务器端,开发人员可通过使用 Nodejs 代码迁移来轻松实现。尽管如此,编写运行在浏览器或服务器端的代码并没有太大的差异。

5 允许让 Web 应用使用单个代码库使用 Nodejs,开发人员可以自动发送和同步服务器端和客户端之间的数据,因为它允许开发人员为服务器和客户端编写 JavaScript 代码。Meteor 是在 Nodejs 之上创建的 Web 应用框架,为客户端和服务器端提供了相同代码库的支持。服务器上任何的数据更改都会在客户端立即显示。

“Nodejs 不是一个支配 Web 开发世界的新平台。相反,它是一个满足特定需求的平台”,根据 Web 工程公司 Toptal 的说法,Nodejs 真正的亮点在于构建快速的、可扩展的网络应用。

6 为代理服务器提供服务使用 Nodejs 最大的优点之一是它作为一个代理服务器时,为不同响应时间的服务提供服务,或为从多个源点收集数据提供服务。

为了更好地理解请看下面这个例子:一个企业有一个服务器端应用,用于与第三方资源进行通信,从不同来源收集数据,或将图像和视频存储到第三方云服务中。现在,尽管企业可以使用专用服务器,但在不存在基础架构或当需要解决方案进行本地开发时,Nodejs 是更好的选择。

7 强大的 Nodejs 包管理器(NPM)Nodejs 具有动态工具和模块的动态存储库,程序员可以使用它们共享应用开发。Nodejs 可以通过框架,模板系统以及与访问者的实时通信管理等使用成千上万个模块用于各种任务,如文件上传管理,连接到 MySQL 数据库或 Redis。

Image Source: HostOnNetcom

对于需要重新使用外部 JavaScript 开发者创建的代码来解决某个特定的问题的程序员来说,Nodejs 的包管理器或 NPM 是他们的救星。NPM 还允许 JavaScript 开发者下载针对以前在其应用中使用的特定代码所做的更新。即使不想重用组织外的 JavaScript 开发者创建的代码,也可以采用基于模块的方式来改进团队成员之间的协同效应。

使用 NPM 后,PayPal 显著提高了开发者的生产力。此外,互联网支付巨头不需要太多的开发者来构建一个应用,就像使用 Nodejs 之前一样。

8 Nodejs 非常适合数据库查询对于数据库查询,Nodejs 有一个优势,因为 JavaScript 可用于为 MongoDB,CouchDB 等新的 NoSQL 数据库编写数据库查询。对于开发者来说,这是一个很大的缓解,因为他们在执行组合 Nodejs 和 NoSQL 数据库的任务时不需要记住语法差异。由于 JSON 存储的数据格式允许平滑运行,在数据转换或不匹配中没有任何障碍。因此 Nodejs 对于实时 Web 应用来说确实是一个福音。

9 Nodejs 托管已经达到一个新的台阶由于 Nodejs 在开发人员中十分受欢迎,因此它的托管已经取得了很大的成功。 PaaS(平台即服务)服务提供商(如 Heroku 和 Modulus)为单个命令的节点部署提供了支持。通过 Nodejs 托管,可将页面加载时间减少高达 50%,并降低托管应用程序所需的服务器数量。

10 蓬勃发展的开源社区

Nodejs 还有着非常有好的社区。因为拥有开源社区,Nodejs 提供了许多出色的模块,可为 Web 应用增加更多优秀的功能。例如,Socketio 可用于处理客户端和服务器之间的恒定通信,从而使服务器可向客户端发送实时更新。Expressjs, Koajs, Hapijs, Sailsjs, Meteor 和 Derby 是由 Nodejs 社区开发的一些其他顶级框架,用于加速应用开发过程。

IoT 社区也欢迎将 Nodejs 用于嵌入式设备和机器人,如 Cylon 和 Nodebots。此外,它已经成为实时 Web APP 开发世界的巨人。上面提到有关 Nodejs 的所有优点是许多公司认为 Nodejs 是运行重负载 Web 应用的很好的技术,并允许团队将其用于生产环境的原因。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

datepicker怎么使用

mixin的高阶组件使用详解

ejsExcel模板在Vuejs中的使用

用jquery$ajax({

url:url,

data:para,

dataType: 'json',

async:false,//(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

success: function(data){}});

SSL证书无效一般存在以下几种原因:

1、SSL证书过期

按照安全证书签发的国际标准,SSL证书最长有效期为2年,一般购买证书默认的是一年,所以大家一定要注意自己的SSL证书时间。

2、SSL证书安装配置错误

SSL证书安装非常的繁杂,一般人很难安装,可联系证书提供商安装。

3、SSL证书不受信任

目前市场上存在一些SSL证书,没有通过全球信任,建议购买全球信任的SSL证书,比如Symantec、Geotrust、Comodo以及RapidSSL等知名CA机构。

4、SSL证书生效时间与电脑时间有冲突

这种情况的话,可以通过设置电脑系统时间来解决

步骤一:打开电脑控制面板

步骤二:找到时钟、语言和区域

步骤三:选择internet时间,点击更改设置

步骤四:勾选与internet时间服务器同步,即可

由于其事件驱动和异步特性,Nodejs 已经飞速发展。但是,在现代网络中,仅仅快速是不够的。如果您计划使用 Nodejs 开发您的下一个 Web 应用程序,您必须采取一切可能的步骤来确保您的应用程序比平时更快。本文介绍了 10 个技巧,这些技巧可以极大地加快基于 Node 的 Web 应用程序的速度。所以,让我们一一看看。

在构建 Web 应用程序时,有时您需要进行多个内部 API 调用来获取各种数据。例如,考虑一个用户仪表板。在渲染仪表板时,您可以执行以下假设调用:

为了检索这些详细信息,您可以为每个函数创建一个单独的中间件并附加到仪表板路由。但是这种方法的问题是一个函数必须等待前一个函数完成。另一种选择是并行执行这些调用。

众所周知,由于 Nodejs 的异步特性,它在并行运行多个函数方面非常高效。我们应该利用这一点。由于我上面提到的功能不相互依赖,我们可以并行运行它们。这将减少中间件的数量并大大提高速度。

为了使事情并行化,我们可以使用 asyncjs,这是一个有助于驯服异步 JavaScript 的 Node 模块。这是一个片段,展示了如何使用 asyncjs 并行运行不同的函数:

如果您想了解有关 asyncjs 的更多信息,请务必查看该项目的GitHub页面。

按照设计,Nodejs 是单线程的。由于这个事实,同步代码可能会锁定整个应用程序。例如,大多数文件系统 API 都有其同步对应物。以下代码段显示了如何同步和异步完成文件读取操作:

但是如果您执行长时间运行和阻塞操作,您的主线程将被阻塞,直到操作完成。这会大大降低您的应用程序的性能。因此,请确保您始终在代码中使用异步 API,至少在性能关键部分。在选择第三方模块时也要小心。即使您采取一切预防措施来避免同步代码,外部库也可能会进行同步调用,从而影响您的应用程序的性能。

如果您正在获取一些不经常更改的数据,您可以将其缓存以提高性能。例如,使用以下代码片段获取最新帖子以显示在视图上:

如果你发博文不是太频繁,可以缓存posts数组,间隔后清空缓存。例如,我们可以使用redis模块来实现这一点。为此,您需要在服务器上安装 Redis。然后您可以使用调用的客户端node_redis来存储键/值对。以下片段显示了我们如何缓存帖子:

因此,首先我们检查帖子是否存在于 Redis 缓存中。如果是这样,我们从缓存中传递posts数组。否则,我们从数据库中检索内容,然后将其缓存。此外,在一段时间后,我们可以清除 Redis 缓存,以便获取新内容。

开启 gzip 压缩会极大地影响 webapp 的性能。当与 gzip 兼容的浏览器请求某些资源时,服务器可以在将响应发送到浏览器之前对其进行压缩。如果您不使用 gzip 压缩静态资源,浏览器可能需要更长时间才能获取它。

在 Express 应用程序中,您可以使用内置的expressstatic()中间件来提供静态内容。此外,您可以使用compression中间件来压缩和提供静态内容。这是一个显示如何执行此操作的片段:

随着 AngularJS、Ember、Meteor 等许多强大的客户端 MVC/MVVM 框架的出现,创建单页应用程序变得非常容易。基本上,您只需公开向客户端发送 JSON 响应的 API,而不是在服务器端呈现。在客户端,您可以使用框架来使用 JSON 并在 UI 上显示。从服务器发送 JSON 可以节省带宽,从而提高速度,因为您不会在每个请求中发送布局标记。相反,您只需发送纯 JSON,然后在客户端呈现。

看看我的这个教程,它描述了如何使用 Express 4 公开 RESTful API。我还写了另一个教程,展示了如何使用 AngularJS 与这些 API 交互。

在典型的 Express Web 应用程序中,会话数据默认存储在内存中。当您在会话中存储太多数据时,会增加服务器的大量开销。因此,您可以切换到其他类型的存储来保留会话数据,或者尝试最小化会话中存储的数据量。

例如,当用户登录到您的应用程序时,您可以只将他们存储id在会话中,而不是存储整个对象。随后,对于每个请求,您都可以从id 您可能还想使用 MongoDB 或 Redis 来存储会话数据。

假设您有一个博客应用程序,它在主页上显示最新帖子。你可能会写这样的东西来使用 Mongoose 获取数据:

但问题是find()Mongoose 中的函数会获取对象的所有字段,并且对象中可能有几个字段在Post主页上不需要。例如,comments是一个这样的字段,它包含特定帖子的一组评论。由于我们没有显示评论,我们可能会在获取时将其排除。这肯定会提高速度。我们可以这样优化上面的查询:

并非所有浏览器都支持对集合进行不同的操作,例如map、reduce和。forEach为了克服浏览器兼容性问题,我们一直在前端使用一些客户端库。但是使用 Nodejs,您可以确切地知道 Google 的 V8 JavaScript 引擎支持哪些操作。因此,您可以直接使用这些内置函数在服务器端操作集合。

Nginx是一个小巧轻便的 Web 服务器,可用于减少 Nodejs 服务器上的负载。您可以配置 nginx 以提供静态内容,而不是从 Node 提供静态文件。您还可以设置 nginx 以使用 gzip 压缩响应,以便整体响应大小较小。因此,如果您正在运行生产应用程序,您可能希望使用 nginx 来提高速度。

最后,通过将多个 JS 文件压缩并合并为一个,可以极大地提高您的 Web 应用程序速度。当浏览器遇到一个

因为时间控件是用鼠标来选择日期的,不是用键盘,所以onkeyup事件肯定不会触发。用鼠标事件也不行,因为鼠标点击的是弹出来的时间控件的界面,不是input。你可以试试 onchange 事件(未经测试)

在服务器端的后台代码Button_Click事件中调用一个JS写的方法

protected void btnShow_Click(object sender, EventArgs e)

{

//这是Button处理事件的第一句 调用客端的js函数

PageRegisterStartupScript("showDiv", "<script>ShowDiv()</script>");//但是VS会提示这种方法已经过时了,但是还是可以使用的!如果比较介意可以使用以下几种替代

第一种:PageRegisterClientScriptBlock("showDiv", "<script>ShowDiv()</script>");

第二种:ScriptManagerRegisterClientScriptBlock("这个比较麻烦,所以虽然比较新 我还是比较喜欢使用过时的 新的总是兼容后面 所以不用担心过时的问题");

第三种:ScriptManagerRegisterStartupScript("这个比较麻烦,所以虽然比较新 我还是比较喜欢使用过时的 新的总是兼容后面 所以不用担心过时的问题");

还有很多方法 选中上面的关任意键字 F1自己看VS帮助吧。。。。。。

//-------下面继续写你客户端要做的处理操作

}

1: 检查是不是电脑勾选了服务器自动对时,双击右下角的时间 出现 “时间和日期”画面,点击“网际网络时间”,我的是繁体有点不一样,但是都是第三选项。“自动与网络时间服务器同步”,看那里有没有勾选 。还有就是你电脑的“时区”是不是选择的“北京”时区,如果时区不对,而你又与网际网络服务器同步时间的话那么你的时间就会无缘无故的小时变慢了。

2:这个问题呢就很奇怪了。试试看把显示器的电源换到另外一个插座试试。如果是直接从电脑主机那里供电的话呢那可能就是供电不足了。建议再拿条线单独对显示器供电

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Web应用开发为什么选择Node.js

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情