2011-09-17 29 views
0

我记录了一些基于用户点击我的网站的分析数据。当一个人点击某个东西时,它会通过ajax调用向我的节点应用程序发送一个调用,但是如果他们点击的是外部链接,原始请求会在他们离开该网站后被取消。即使在客户端断开连接后,节点是否有处理请求的好方法?用户关闭浏览器后Node.js是否可以继续运行?

回答

3

如果正在运行的进程不需要写入响应,那肯定没关系。
即使这样,它可能不会无论如何,如果你这样做

  1. 用户没关系提交请求时,你回答“感谢名单,启动了作业”。在响应之前,异步执行作业(并不难,因为node.js代码应该是是异步开始的)。

  2. 作业将数据放入某个表或文件或nosql存储中。

  3. 用户可以转到其他网址查看作业及其状态列表(已启动,正在运行,已完成)并查看结果。

+0

看着我的node.js代码,我等待在我的数据存储在数据库后发回响应。我会尽快发送回应,并看到它有帮助。 – Clint

+0

@clint - 是的,但请确保以异步方式*开始数据处理。如果你不确定如何做到这一点,请更新你的问题,包括你的过程的细节和你尝试的,或者只是开始一个新的问题 – hvgotcodes

+0

这绝对是一个异步调用来存储我的数据在数据库中。在节点中很难做到异步:-)我认为问题可能是客户端Ajax调用甚至在浏览器切断它之前甚至没有将其添加到节点。我会做更多的测试并回来。 – Clint

相关问题