4

当用户离开我的网站或关闭浏览器或在地址栏中输入任何其他 url时,我想删除图像。

4

4 回答 4

2

您无法捕获用户选择离开网站的时间。您最好在某处记录他们上次从会话中访问您的网站的时间,并在一段时间后进行某种 cron 工作来清除他们的图像。

于 2012-12-01T10:39:08.573 回答
0

这很难实施。没有正确的方法来检测用户何时离开您的网站。最准确的方法是向您的页面添加一个脚本,该脚本会以较小的间隔定期请求某个 URL。当用户离开时,这个 URL 不再被请求,你意识到用户已经离开了,你可以删除一些东西。

于 2012-12-01T10:41:42.570 回答
0

好吧,我不是一个优秀的 JavaScript Pro,但我认为可能有一个功能可以检查用户是否离开页面。(想想这个不时出现的弹出窗口,你会被问到是否真的要离开这个页面。)你现在检查这个事件(页面离开)是否正在发生,当它发生时,你发送一个 AJAX 请求。您的 PHP 响应删除您的图像。

就像我说的,不确定 Javascript 中的这个函数是否有效。

于 2012-12-01T10:42:37.513 回答
0

您可以在事件上使用 Javascript,onbeforeunload然后在异步设置为关闭的情况下执行 AJAX 请求,因此它会在用户离开之前“阻止”浏览器

您可以使用 jQuery 进行异步 AJAX 调用,如下所示:

window.onbeforeunload = function(){
   $.ajax({
      url:"your_delete_script.php", 
      async:false
   });
}

或者您可以即时创建一个图像,其作用类似于执行脚本的信标。

window.onbeforeunload = function(){
  var img = new Image();
  img.src = "script.php";
}

只要确保你的脚本在那个部分得到了ignore_user_abort,所以如果用户关闭浏览器它就会独立执行

于 2012-12-01T10:42:47.050 回答