PHP和node.js有什么区别,“网站在php中构建”和“在Node.js”之间有什么区别?

70次阅读
没有评论

Quora:PHP和node.js有什么区别?

PHP和Node.js服务器端运行,两者都是构建网站的可行选择。但它们之间存在核心差异。

首先,一个并不比另一个好。现在让我们摆脱这个论点。它们适合不同的用例,并且通常在一个站点上同时使用它们是有意义的。

现在,谈谈差异。

1. 成熟的 PHP已经存在了很长时间。这意味着有很多用PHP编写的项目,也有很多PHP开发人员。很容易获得棘手问题的帮助 – 它可能已经解决了。Node.js对游戏来说相对较新,所以很多时候你会用它来开辟新的天地。不过,这并不是一件坏事,Node.js已经从其他语言(包括PHP)的错误中吸取了教训,并且几乎没有什么遗留问题。

2. 它们如何运行 Node.js通常作为自己的服务器运行,并且非常独立。使用PHP,你可以用像阿帕奇或Nginx这样的网络服务器或其他许多服务器之一来运行它。

如果您运行传统的Apache安装,您会发现每个连接都会获得一个小的Apache服务器,该服务器启动以处理该连接。这很好,因为无论一个用户在做什么,都不会影响任何其他用户。当您的网站开始受到打击时,情况就不那么好了,您的服务器正在磨练,因为它已经用完了预先启动的服务器,并且当您耗尽内存时,一切都会死亡。因此,要扩展传统的PHP,您最终会通过负载平衡器运行大量服务器,然后您还要为会话维护和其他事情而苦苦挣扎。

当然,PHP确实可以扩展 – 有很多大型网站使用PHP。这只需要一点工作。

Node.js运行服务器的一个实例,并接受与此实例的所有连接。这意味着它的内存效率更高,响应大量连接的速度更快。但这也意味着,任何减慢Node.js的速度,都会减慢*每个人*的速度。

因此,假设你的应用发送了一封“感谢您注册”邮件。在PHP中,您只需将其作为应用程序的一部分触发,用户可能会坐几秒钟,而您的PHP应用程序与邮件服务器通信,然后邮件被发送。这并不好,但你不太可能花几天时间编写一种异步方式来发送感谢信。

但是,在 Node 中.js,该感谢邮件将阻止每个人使用您的应用程序几秒钟。如果有很多人注册,这就变成了一场彻底的灾难。

因此,为了解决这个问题,Node.js遵循一种非常不同的编码风格。

3. 编码风格 所以,很明显,Node.js是爪哇脚本,而 PHP 是,呃,PHP。对于所有关于一个优于另一个的宣传,它们实际上在语法上非常相似。但是,您需要在两者之间做出相当大的改变。

菲律宾比索是非常线性的。试图在PHP中多任务处理任何东西都是一种混乱。PHP不擅长它,因为它不一定是。您的整个系统正在使用PHP进行多任务处理,在几毫秒内启动和关闭多个Apache服务器,以便仅提供一个网页。阿帕奇为你做多任务处理。在他们完成工作后,那些Apache服务器死亡并进入Web服务器天堂,那里没有XML。

节点.js是完全异步的。几乎所有事情都是多任务处理的,这有其自身的挑战。您通常会触发一个进程,例如发送邮件,当它完成时,它会触发一个事件来告诉您的应用程序它已完成。与此同时,您的应用程序继续处理其他人的请求。这些东西很难调试,有时也很难构建。但大多数情况下,它只是与PHP不同。

那么,什么时候应该使用其中一个呢?

无论何时何地!您对技术的选择可能取决于您的主要开发人员更熟悉什么,您的服务提供商愿意运行什么,或其他平凡的操作考虑因素。如果你很幸运,你真的有选择,Node.js可能会有很多小联系。如果您在页面上使用大量Ajax,并且每个页面执行大量异步调用,或者使用websockets或类似的长连接,Node.js将更好地工作。

如果你有一个复杂的,大的,静态的页面要交付,或者你必须处理大量数据,你可能最好使用PHP。

或者完全冷却并同时使用两者。你会像一个骑自行车者和嬉皮士之间的恋人,绝对会拥有令人敬畏的胡须。

facingscreen
版权声明:本站原创文章,由 facingscreen2022-09-09发表,共计1560字。
转载说明:本文为搜栈网原创文章,除特殊说明外皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码