ad5ffa6fc723bd139482511317a8d8ce.png

慕姐4208626

这与较新版本的Chrome有关。就像@Garry English 所说的那样,async在页面期间发送请求onunload将不起作用,因为浏览器会在发送请求之前终止线程。发送sync请求应该可以。在Chrome版本29之前一直如此,但是在Chrome V 30上,它突然停止工作,如此处所述。看来今天这样做的唯一方法是使用此处建议的onbeforeunload事件。但是请注意:其他浏览器根本不允许您在onbeforeunload事件中发送Ajax请求。因此,您需要做的是在卸载和beforeunload中都执行该操作,并检查它是否已经发生。像这样:var _wasPageCleanedUp = false;function pageCleanup(){    if (!_wasPageCleanedUp)    {        $.ajax({            type: 'GET',            async: false,            url: 'SomeUrl.com/PageCleanup?id=123',            success: function ()            {                _wasPageCleanedUp = true;            }        });    }}$(window).on('beforeunload', function (){    //this will work only for Chrome    pageCleanup();});$(window).on("unload", function (){    //this will work for other browsers    pageCleanup();});

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐