当前位置: 首页 > 面试题库 >

何时使用socket.io和何时使用ajax

周和安
2023-03-14
问题内容

我一直在nodejs中编程,研究了如何同时使用socket.io和对节点服务器的ajax调用。socket.io是否设计为替代ajax?我很好奇,在哪种情况下使用socket.io更好,而哪种ajax更好。感谢您的输入。


问题答案:

好吧,Web套接字(通过socket.io)提供的主要内容之一就是ajax缺乏的是服务器推送。因此,对于ajax,如果您想了解服务器上的新事件(例如,另一个用户向您发送了一条消息),则需要进行服务器轮询,这意味着您以相对频繁的周期性循环发送ajax请求。在大多数情况下,服务器会响应没有新内容,但是有时候,当有新内容时,客户端可以了解它。

Web套接字允许服务器在不进行轮询的情况下主动将通知推送到客户端。因此,如果您的应用程序具有任何需要在服务器上启动并且仅在浏览器中显示的信息,则Web套接字是一种更好的解决方案。

  • 以请求/响应模型向服务器提交数据
    • ajax或web套接字本质上等效,传统形式的POSTS也可以
  • 在事件流模型中将事件提交到服务器
    • Web套接字是最好的,可以通过Ajax进行仿真
  • 将事件从服务器推送到浏览器
    • Web套接字是最好的,可以通过Ajax长时间轮询,Flash等进行仿真(socket.io有几个后备选项,如果没有真正的Web套接字,可以尝试使用)。
  • 较旧的浏览器,某些移动平台
    • Web套接字支持不存在,因此ajax是您的后备


 类似资料:
  • 问题内容: 我得到了asyncio在Python 3.5 中使用的流程,但是我还没有看到关于我应该使用什么东西,我不应该使用的await东西或者它在哪里容易出现的描述。我是否仅需要根据“这是IO操作并应进行await编辑” 来做出最好的判断? 问题答案: 默认情况下,所有代码都是同步的。你可以使用使其异步定义函数,async def并使用来“调用”这些函数await。一个更正确的问题是“什么时候应

  • 问题内容: 我感觉好像总是被教导要使用s,并且我经常看到它们与s 混合使用,以在应该在不同页面上执行相同操作的几段代码中完成相同类型的查询。开始: 那就是我正在从事的工作: 我看到很多像: 似乎LEFT也可能是INNER,有没有抓住的机会? 问题答案: 有收获吗?是的-左联接是外联接的一种形式,而内联接是内联接的一种形式。 这是显示差异的示例。我们将从基本数据开始: 在这里,我们将看到内部联接和左

  • 问题内容: 我是pthread的新手,我正试图了解它。我看到了一些类似以下的示例。 我可以看到API阻止了它,并且我看到了一些示例,其中主要功能都被API阻止了。我不明白什么时候使用什么? 我指的是以下站点-https://computing.llnl.gov/tutorials/pthreads/。我无法获得何时使用和何时使用的概念。 有人可以解释一下吗?此外,将感谢一个很好的pthread教程

  • 使用Maven Tycho插件的目的是什么。我在这里读到了tycho用于构建eclipse插件和OSGI包。 问题:-我们难道不能只使用普通的旧maven pom.xml文件[不使用tycho插件]来构建eclipse插件和OSGI包吗。 maven需要什么tycho插件来帮助它构建eclipse插件和OSGI包? 为什么我们要使用Maven tycho插件来构建eclipse插件和OSGI包?

  • 问题内容: 有人可以解释它们之间的主要区别以及在实践中如何使用它们吗? 问题答案: 首先,每当您遇到“如何在实践中使用它”问题时,一个好的开始方法就是搜索 Go源代码(或实际上足够大的Go代码库),并在软件包文档中寻找答案。 现在,和有很大的不同。当程序或其部分达到不可恢复的状态时使用。 当被调用时(包括对运行时错误的隐式调用,例如,对切片进行索引编制索引或失败类型声明),它将立即停止当前函数的执

  • 问题内容: dequeueReusableCellWithIdentifier有两个重载,我试图确定何时应该使用一个重载? 关于forIndexPath函数的Apple文档指出: “此方法使用索引路径基于表视图中单元格的位置执行其他配置。” 我不确定该如何解释? 问题答案: 最重要的区别是,如果您没有为标识符注册类或笔尖,则该版本会断言(崩溃)。在这种情况下,将返回较旧的(非)版本。 您可以通过发