js中onload与onunload的使用示例
JS 使用 示例 onLoad onUnload
2023-06-13 09:15:04 时间
引言:
今天周末没事,就想起前面自己做的一个B2C的电子商务平台,还有些一些地方没有完善,就想着完善,嗯,问题是这样的,在电子商务平台中有这样一个场景,我将购物车放置在Session中,使其在整个购物的过程中都能从Session中得到购物车模型,我在购物车某型中有的商品都会在数据库中减少其购物车中购买的数量,但是如果我关闭窗口,怎样让Session中的购物车模型中的商品数量添加到数据库中,于是我查找了GOOGLE、百度,得到的第一个提示,就是:关闭窗口自动清除Session,于是找到的第一个方法就是在<body>标签使用onunload属性,调用某个js如:<bodyonunload=”close()”>该方法是关闭窗口时触发close()事件,于是我就可以在close()方法中定义删除Session的方法……
但是事实不是这样的,当你刷新这个页面,以及点击这个页面上的链接时onunload都会触发,于是我又在GOOGLE,百度中查找:得到的答案如下:
复制代码代码如下:
今天周末没事,就想起前面自己做的一个B2C的电子商务平台,还有些一些地方没有完善,就想着完善,嗯,问题是这样的,在电子商务平台中有这样一个场景,我将购物车放置在Session中,使其在整个购物的过程中都能从Session中得到购物车模型,我在购物车某型中有的商品都会在数据库中减少其购物车中购买的数量,但是如果我关闭窗口,怎样让Session中的购物车模型中的商品数量添加到数据库中,于是我查找了GOOGLE、百度,得到的第一个提示,就是:关闭窗口自动清除Session,于是找到的第一个方法就是在<body>标签使用onunload属性,调用某个js如:<bodyonunload=”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我可以用<bodyonunload=”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";">
相关文章
- 使用 Dapr JS SDK 让 Nest.js 集成 Dapr(微软开源的分布式应用程序运行时)
- html js 全局 变量,JS定义全局变量
- JavaScript刷LeetCode拿offer-js版字典
- 使用Node.js连接MySQL数据库实现数据交互(mysqlnodejs)
- 使用Mongodb运行JavaScript脚本(mongodb执行js)
- JS中批量给元素绑定事件过程中的相关问题使用闭包解决
- JS中eval函数的使用示例
- js中的屏蔽的使用示例
- js中的switch表达式使用示例
- JS截取字符串常用方法整理及使用示例
- 使用js的replace()方法查找字符示例代码
- js禁止页面使用右键(简单示例代码)
- jqueryajax对特殊字符进行转义防止js注入使用示例
- JS的document.all函数使用示例
- JS中使用Array函数shift和pop创建可忽略参数的例子
- 使用AjaxFileUpload.js实现异步文件上传示例
- 用原生JS获取CLASS对象(很简单实用)
- node.js使用require()函数加载模块
- node.js中的http.get方法使用说明
- node.js中的fs.rmdirSync方法使用说明
- 使用jquery动态加载js文件的方法
- js中的getAttribute方法使用示例