我正在向我的服务器提交有关用户会话的分析类型数据,并且我是在 beforeunload
浏览器事件期间执行此操作。这一直工作正常,直到我在我的网站上使用 puppeteer
机器人,它实际上开始中止请求。我知道这一点是因为我正在捕获 puppeteer 的 failedrequest
事件并且可以看到我的特定请求正在中止。我认为这与 puppeteer 的实例有关,但我不确定,也不是问题的一部分。
在尝试返回 fetch
承诺并尝试使用同步 XMLHttpRequest
后,我发现我唯一真正的选择是使用 navigator.sendBeacon
。现在的问题是我的信标到达服务器太晚了 - 我在获得有关它的所有信息之前正在处理用户的会话。就机器人而言,我正在处理有关会话的零信息,纯粹是因为机器人运行得如此之快。
我有三个问题:
(对于上下文,Web 服务器在 Node 上运行,使用 express
,并使用 client-session
进行会话处理。)