微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

浏览器关闭后从数据库中删除

如何解决浏览器关闭后从数据库中删除

| 我正在开发一个电子商务应用程序。但是问题是,当用户将产品添加到购物车并在下订单前关闭浏览器时,购物车会拿走所有产品。所有购物车项目都保存在一个表中。 我只想在用户未订购就关闭浏览器时冲洗购物车。     

解决方法

您可以使用Javascript事件捕获浏览器关闭并将ajax请求发送到一些脚本,这些脚本将删除购物车数据: 更新
<script language=\"javascript\">
function fnUnloadHandler() {
  xmlhttp=null; 
  if (window.XMLHttpRequest) 
     {// code for Firefox,Opera,IE7,etc. 
        xmlhttp=new XMLHttpRequest(); 
     } 
  else if (window.ActiveXObject) 
     {// code for IE6,IE5 
        xmlhttp=new ActiveXObject(\"Msxml2.XMLHTTP\"); 
     } 

  if (xmlhttp!=null) 
     {  
        xmlhttp.open(\"GET\",\"http://yourhost/del_cart_actionFile.php\",true); 
        xmlhttp.send(null); 
     } 
     else 
     { 
        alert(\"Your browser does not support XMLHTTP.\"); 
     } 
}
</script>
<body onbeforeunload=\"fnUnloadHandler()\">
</body>
    ,当用户关闭浏览器时,无法可靠地知道/更改服务器。您需要重新考虑设计:即,除非结帐完成,否则不要将购物车中的物品持久保存到数据库中。您可以并且应该将购物车项目保留在用户会话中,或者可能保留在客户端的Cookie中(除非您的购物车尺寸很大)。 否则,使用会话密钥在数据库中键入购物车数据。然后,您可以(可能)在应用程序的会话管理中添加某种挂钩,以在清除会话时刷新数据库内容。     ,服务器端实际上不知道您何时关闭浏览器。您可以ping服务器
onBeforeClose
并告诉它刷新购物车,但这意味着用户关闭选项卡时,它也会刷新。 如果您的用户已登录-您只能保留\“浏览器会话\”的会话cookie,这样,当他或她回来时,该用户将被注销。此时-每当用户登录-冲洗购物车。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。