js中onload与onunload的使用示例

 更新时间:2013年08月25日 12:33:14   作者:  
onload与onunload想必大家并不陌生吧,下面为大家演示下js中onload与onunload的妙用,感兴趣的朋友可以参考下,希望对大家有所帮助
引言:
今天周末没事,就想起前面自己做的一个B2C的电子商务平台,还有些一些地方没有完善,就想着完善,嗯,问题是这样的,在电子商务平台中有这样一个场景,我将购物车放置在Session中,使其在整个购物的过程中都能从Session中得到购物车模型,我在购物车某型中有的商品都会在数据库中减少其购物车中购买的数量,但是如果我关闭窗口,怎样让Session中的购物车模型中的商品数量添加到数据库中,于是我查找了GOOGLE、百度,得到的第一个提示,就是:关闭窗口自动清除Session,于是找到的第一个方法就是在<body>标签使用onunload属性,调用某个js如:<body onunload=”close()”>该方法是关闭窗口时触发close()事件,于是我就可以在close()方法中定义删除Session的方法……
但是事实不是这样的,当你刷新这个页面,以及点击这个页面上的链接时onunload都会触发,于是我又在GOOGLE,百度中查找:得到的答案如下:
复制代码 代码如下:

<script>
window.onunload = function(){if(self.screenTop>9000)alert('该窗口已经被关闭!')}
</script>

<script>
window.onunload = function(){if(self.screenLeft>9000)alert(该窗口已经被关闭!.')}
</script>

说明:
window.screenTop
获取浏览器客户区左上角相对于屏幕左上角的 y 坐标
screenTop>后面的数字必须大于你显示分辩率中的高度
比如,800*600, 这个数得大于600
window.screenLeft
获取浏览器客户区左上角相对于屏幕左上角的 x 坐标
screenLeft>后面的数字必须大于你显示分辩率中的宽度
比如,800*600, 这个数得大于800

通常这两个值设为9000
于是我使用上面的方法,实现了只有在关闭页面才触发onunload事件。

总结:
① 当使用onunload属性时,你可以使用Ajax来清除Session,也可以使用window.location.href来触发某个请求,比如我在这个用的是struts2我可以用<body onunload=”javascript:window.location.href-‘${pageContext.request.contextPath }/cart/closeWindow.action'” >
然后有closeWindow.action这个请求去处理Session中购物车的商品,让其数量添加到数据库中;
② 在此处我也有Ajax来处理请求,但是事实上我们只要处理Session,并不要处理完Session后有任何返回的异步信息,所以我还是使用的触发一个请求的方法,最终的写法如下:
复制代码 代码如下:

<body
onunload="javascript:if(self.screenTop>9000) window.location.href='${pageContext.request.contextPath }/cart/closeWindow.action';">

相关文章

  • JavaScript中的Proxy对象

    JavaScript中的Proxy对象

    这篇文章主要介绍了JavaScript中的Proxy对象的相关资料,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-11-11
  • 详解JavaScript中Hash Map映射结构的实现

    详解JavaScript中Hash Map映射结构的实现

    Hash Map通常在JavaScript中作为一个简单的来存储键值对的地方,不过哈希对象Object并不是一个真正的哈希映射,没Java中的Hash Map来的那么强大,well,接下来带大家详解JavaScript中Hash Map映射结构的实现
    2016-05-05
  • js 获取图像缩放后的实际宽高,位置等信息

    js 获取图像缩放后的实际宽高,位置等信息

    本文主要介绍了js获取图像缩放后的实际宽高,位置等信息的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • JavaScript This指向问题详解

    JavaScript This指向问题详解

    这篇文章主要介绍了JavaScript This指向问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • event.X和event.clientX的区别分析

    event.X和event.clientX的区别分析

    解释一下event.X和event.clientX有什么区别?event.clientX返回事件发生时,mouse相对于客户窗口的X坐标 event.X也一样但是如果设置事件对象的定位属性值为relative
    2011-10-10
  • 微信小程序实现登录注册界面

    微信小程序实现登录注册界面

    这篇文章主要为大家详细介绍了微信小程序实现登录注册界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • JS网页图片按比例自适应缩放实现方法

    JS网页图片按比例自适应缩放实现方法

    这篇文章主要介绍了JS网页图片按比例自适应缩放实现方法,有需要的朋友可以参考一下
    2014-01-01
  • Javascript 事件捕获的备忘(setCapture,captureEvents)

    Javascript 事件捕获的备忘(setCapture,captureEvents)

    Javascript 事件捕获的备忘(setCapture,captureEvents)...
    2006-09-09
  • 怎样用JS模拟实现枚举

    怎样用JS模拟实现枚举

    这篇文章主要介绍了怎样用JS模拟实现枚举,对枚举感兴趣的同学,可以实验一下
    2021-04-04
  • three.js Mool3D模型类的使用

    three.js Mool3D模型类的使用

    这篇文章主要为大家介绍了three.js Mool3D模型类的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论