首頁 > web前端 > js教程 > 主體

js中onload與onunload的使用範例_javascript技巧

WBOY
發布: 2016-05-16 17:24:24
原創
1176 人瀏覽過
引言:
今天週末沒事,就想起前面自己做的一個B2C的電子商務平台,還有些一些地方沒有完善,就想著完善,嗯,問題是這樣的,在電子商務平台中有這樣一個場景,我將購物車放置在Session中,使其在整個購物的過程中都能從Session中得到購物車模型,我在購物車某型中有的商品都會在數據庫中減少其購物車中購買的數量,但是如果我關閉窗口,怎樣讓Session中的購物車模型中的商品數量添加到數據庫中,於是我查找了GOOGLE、百度,得到的第一個提示,就是:關閉窗口自動清除Session,於是找到的第一個方法就是在標籤使用onunload屬性,呼叫某個js如:該方法是關閉視窗時觸發close()事件,於是我就可以在close()方法中定義刪除Session的方法…
但是事實不是這樣的,當你刷新這個頁面,以及點擊這個頁面上的鏈接時onunload都會觸發,於是我又在GOOGLE,百度中找出:得到的答案如下:
複製程式碼 程式碼如下:

<script> >window.onunload = function(){if(self.screenTop>9000)alert('該視窗已關閉!')} <BR></script>

<script> <BR>window .onunload = function(){if(self.screenLeft>9000)alert(此視窗已關閉!.')} <BR></script>

說明:
window. screenTop
取得瀏覽器客戶區左上角相對於螢幕左上角的y 座標
screenTop>後面的數字必須大於你顯示分辯率中的高度
比如,800*600, 這個數字得大於600
window.screenLeft
取得瀏覽器客戶區左上角相對於螢幕左上角的x 座標
screenLeft>後面的數字必須大於你顯示分辯率中的寬度
比如,800*600,這個數得大於800

通常這兩個值設為9000
於是我使用上面的方法,實現了只有在關閉頁面才觸發onunload事件。


總結: ① 當使用onunload屬性時,你可以使用Ajax來清除Session,也可以使用window.location.href來觸發某個請求,例如我在這個用的是struts2我可以用
然後有closeWindow.action這個請求去處理Session中購物車的商品,讓其數量添加到資料庫中;
② 在此處我也有Ajax來處理請求,但是事實上我們只要處理Session,並不要處理完Session後有任何返回的異步信息,所以我還是使用的觸發一個請求的方法,最終的寫法如下:

複製程式碼 程式碼如下:
onunload="javascript:if(self.screenTop>9000) window.location.href='${pageContext.request.contextPath }/cart/closeWindow.action';">

相關標籤:
js
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板