事件调用结束时/ JavaScript

Event when call ends / JavaScript

本文关键字:JavaScript 结束 调用 事件      更新时间:2023-09-26

我们想记录我们网站上的JavaScript。为此,我正在用我自己的实现覆盖日志功能。

在服务器端,我们使用Log4Net进行日志记录。我现在的想法是在客户端捕获日志,并使用ajax将其发送到服务器。无论如何,我不想在每次有人输入log时都发送Ajax请求。所以我的想法是捕捉所有的日志,并在调用堆栈结束后发送一个请求。

是否有一个事件或方法来检测调用堆栈何时"结束"?

你可以尝试使用javascript beforeunload事件发送你的日志,当用户离开一个页面。如果使用jQuery,代码如下:

$(window).bind("beforeunload",function(event) {
    //... put your ajax code here ...
    return "The log has sent to server.";
});

然而,beforeunload事件将在屏幕上显示一个消息框。

如果你想在一个函数之后运行另一个函数,你可以使用jQuery $.when()方法如下:

$.when(functionOne(), functionTwo()).then(functionThree()).done(functionFour());

functionOne()、functionTwo()、functionThree()和functionFour()必须是延迟对象。这篇博客给出了如何实现延迟对象的简单解释