“运行并忘记”来自javascript的链接

时间:2016-10-21 11:06:04

标签: javascript

我正在开设一个网站,该网站会跟踪用户何时进入某个网页以及他在那里停留多长时间(或者当他离开时更具体)

我已经设置了一个节点服务器,我想在那里运行操作,但问题与节点本身无关,这是一个与javascript相关的问题。

我的目标是让javascript使用特定参数调用某个方法,然后忘掉它。但是,如果可能的话,我想避免使用ajax,我知道我可以用ajax做到这一点,但我认为这是一种矫枉过正,即使ajax可以在节点服务器上运行,我也不确定。

我正在看的是像

*用户打开网页 * Javascript运行脚本,比方说。 运行( “http://server.com/User/EnteredPage/IDOFUSER”);

当用户关闭页面时 运行( “http://server.com/User/LeftPage/IDOFUSER”);

点是..我不需要那个电话,我只是想让javascript运行它,以保存我需要的数据,就是这样。

1 个答案:

答案 0 :(得分:1)

HTTP是无状态的。浏览器要求提供资源。服务器为浏览器提供资源。结束。

请求已完成并处理完毕。没有关于该请求的进一步通信,因此服务器不知道访问者何时离开它所服务的页面。如果你想知道,那么你需要另一个请求来告诉服务器它。

该方法的问题在于访问者可能会离开页面:

  • 完全退出浏览器
  • 电池耗尽
  • 断开网络连接

...因此,当用户离开页面时,您无法可靠地发送新请求。

因此,您可以做的最好的事情是让浏览器告诉服务器用户还没有离开(您可以使用Ajax或(可能更有效)WebSockets执行此操作

将此与服务器上基于计时器的操作相结合,该操作测试自访问者的浏览器上次发送我仍然在这里消息以来使用 致电访客已离开功能。