Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用结束时的事件/JavaScript_Javascript_Ajax_Events_Logging - Fatal编程技术网

调用结束时的事件/JavaScript

调用结束时的事件/JavaScript,javascript,ajax,events,logging,Javascript,Ajax,Events,Logging,我们想在我们的网站上登录JavaScript。为此,我用自己的实现覆盖日志功能 在服务器端,我们使用Log4Net进行日志记录。我现在的想法是在客户端捕获日志,并使用ajax将其发送到服务器。无论如何,我不想每次有人输入日志时都发送Ajax请求。所以我的想法是捕获所有日志,并在调用堆栈结束后发送一个请求 是否有事件或方法检测调用堆栈何时“结束”当用户离开页面时,您可以尝试在卸载前使用javascript事件发送日志。 如果使用jQuery,代码如下所示: $(window).bind("befo

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

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


是否有事件或方法检测调用堆栈何时“结束”

当用户离开页面时,您可以尝试在卸载前使用javascript
事件发送日志。
如果使用jQuery,代码如下所示:

$(window).bind("beforeunload",function(event) {
    //... put your ajax code here ...

    return "The log has sent to server.";
});
但是beforeunload事件将在屏幕上显示一个消息框

另外,如果您想在另一个函数运行之后再运行一个函数,可以使用jQuery方法,如下所示:

$.when(functionOne(), functionTwo()).then(functionThree()).done(functionFour());
functionOne()、functionTwo()、functionThree()和functionFour()必须是
简单说明如何实现延迟对象。

当用户离开页面时,您可以尝试在卸载前使用javascript
事件发送日志。
如果使用jQuery,代码如下所示:

$(window).bind("beforeunload",function(event) {
    //... put your ajax code here ...

    return "The log has sent to server.";
});
但是beforeunload事件将在屏幕上显示一个消息框

另外,如果您想在另一个函数运行之后再运行一个函数,可以使用jQuery方法,如下所示:

$.when(functionOne(), functionTwo()).then(functionThree()).done(functionFour());
functionOne()、functionTwo()、functionThree()和functionFour()必须是
请简单说明如何实现延迟对象。

您可以使用中显示的onbeforeunload方法。您可以使用此事件中显示的onbeforeunload方法在用户离开站点时触发。我想要一个在函数结束时调用的事件。像这样
函数一(){}函数二(){one();}two()//在两个结尾处,事件应该触发,因为它在调用堆栈中。@KevinBoss为什么不在调用日志函数的两个()之后的结尾处添加一个函数呢?因为我不想让函数的用户处理ajax。我将改为使用超时,并在添加新日志时重置超时。卸载似乎对丢失日志非常危险。当用户离开站点时会触发此事件。我想要一个在函数结束时调用的事件。像这样
函数一(){}函数二(){one();}two()//在两个结尾处,事件应该触发,因为它在调用堆栈中。@KevinBoss为什么不在调用日志函数的两个()之后的结尾处添加一个函数呢?因为我不想让函数的用户处理ajax。我将改为使用超时,并在添加新日志时重置超时。卸载似乎对丢失日志非常危险。