需求分析過程中 專案裡可能需要的技術點記錄
1、登入頁面中要求的驗證碼生成。公司現有專案中沒有驗證碼生成的模組。
2、js記錄頁面中時間。js記錄: 每道題做題時間,正答率情況,是否看提示,是否看答案。並且需要
2.1 連結http://blog.csdn.net/linda15123/article/details/7904381
3、捕獲頁面關閉事件
摘抄的點:
A 純粹js實現<script type="text/javascript">
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning="確認退出?";
return warning;
}
function onunload_handler(){
var warning="謝謝光臨";
alert(warning);
}
</script>
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
這兩種都可以捕獲視窗關閉事件,window.onbeforeunload 在window.onunload之前執行
B 處理BGU
當我們離開一個網頁時,往往需要提醒使用者自己的這一行為,比如我正在編輯一個文件,或者我是在使用網上銀行,我希望在自己操作失誤之後能給我一次改正的機會。這裡說道的離開一個網頁,其實分為好幾種情況:重新整理 關閉 後退
我們經常用到頁面關閉事件onbeforeunload,可以給使用者一個選擇放棄關閉的機會,就比如這個部落格編輯器。如果使用者選擇了離開,那麼onunload事件自然會觸發;但若使用者選擇了取消(或者是留在此頁),又該如何檢測呢?
window.onbeforeunload = function()
{
return "真的離開?";
}
當使用者準備離開頁面(比如按下關閉按鈕,或者重新整理頁面等等),onbeforeunload事件觸發。我們的指令碼無法在這個事件裡決定是否阻止頁面的關閉,唯一能做到的只有返回一個字串,這個字串僅作為說明文字出現在關閉選擇對話方塊裡,使用者可以選擇關閉,或者不關閉。但究竟選擇哪個,我們無從得知。
然而仔細分析下這個問題,其實不然。 如果使用者真選擇了關閉頁面,那麼之後所有的執行程式碼都沒用了;而繼續留在頁面的話,就當什麼都沒發生過,除了onbeforeunload事件。所以,我們在onbeforeunload事件裡做點改動,在此註冊個幾毫秒之後啟動的定時器,如果頁面真關閉了,那麼這個定時器當然是作廢了;那麼頁面還在,幾毫秒的延時對於這個本來就是非同步的介面互動事件也沒有什麼誤差。
<script language="JavaScript">
window.onbeforeunload = function()
{
setTimeout(onunloadcancel, 10);
return "真的離開?";
}
window.onunloadcancel = function()
{
alert("取消離開");
}
</script>
我們使用setTimeout,延時10ms執行onunloadcancel。如果頁面真關閉了,定時器當然都銷燬;反之繼續。但在測試中,發現FireFox有個兩個BUG:
有時按下關閉按鈕,也會執行onunloadcancel,並且有個對話方塊一閃而過。如果換成while(1);瀏覽器會一直卡死,這說明onunloadcancel確實是執行了,只是銷燬了介面,但並沒有暫停指令碼的執行。
如果是通過重新整理頁面的方式離開,僅執行一次onbeforeunload,但點選X按鈕關閉頁面,會執行兩次onbeforeunload。因此我們還需在完善下,以便相容FF。
<script language="JavaScript">
var _t;
window.onbeforeunload = function()
{
setTimeout(function(){_t = setTimeout(onunloadcancel, 0)}, 0);
return "真的離開?";
}
window.onunloadcancel = function()
{
clearTimeout(_t);
alert("取消離開");
}
</script>
這裡使用了一種我也說不出原因的辦法,解決了FF下的bug。
C BODY 中進行操作
.用onUnload方法
在body 標籤里加入onUnload事件
body onUnload="myClose()"
然後在javascript裡定義myClose()方法
但是onUnload方法是在關閉視窗之後執行,不是在關閉視窗之前執行,如果你想在關閉視窗之前做判斷,請用第一種方法
相關文章
- Flutter專案整合mqtt的過程記錄FlutterMQQT
- 專案需求管理的五大過程
- springboot升級過程中踩坑定位分析記錄 | 京東雲技術團隊Spring Boot
- 分享DDOS防禦過程中需要了解的技術手段
- 技術點滴記錄
- 接手前端新專案?這裡有些注意點你可能需要留意一下前端
- 專案管理過程中的問題分析方法(轉)專案管理
- 涉及這些專案,需要開展需求調查形成書面記錄
- 執行一個專案中間報錯裝包過程記錄
- 資料需求分析過程
- xMIS需求分析技術
- 揭祕 Reddit 愚人節專案的技術實現過程
- 學習過程中,專案檔案、程式碼疑惑點
- 專案管理過程中的問題分析方法1(轉)專案管理
- 專案管理過程中的問題分析方法2(轉)專案管理
- 專案管理過程中的問題分析方法3(轉)專案管理
- 在實際的專案需求中瞭解技術架構的演進架構
- 傑裡之Bin 檔案燒錄過程【篇】
- 信管筆記 -- 專案管理過程筆記專案管理
- 專案管理-技術工程師需要有技術商人的能力薦專案管理工程師
- 專案管理中的需求變更分析和解決之道專案管理
- 沉思錄:IT專案產品化過程中的問題雜談(二)
- 面試高頻題:講講專案中的技術難點?面試
- 快速技術成長:提煉和總結專案中的技術重難點
- vue專案技術小記Vue
- 大型專案部署注意點記錄
- 團隊專案需求分析
- 軟體專案管理 4.1.軟體需求管理過程專案管理
- 軟體專案需求調研過程管理小議(轉)
- iOS中關於專案中打包ipa的過程iOS
- minjun信管筆記 -- 專案管理過程筆記專案管理
- 理想的技術面試過程面試
- 需求調研分析中的專案干係人概念(轉)
- 需求過程化分析方法-例項分享
- 軟體專案需求開發過程實踐之軟體需求說明書
- Flutter開發過程中遇到的問題記錄Flutter
- phppatch記錄requesturl(專案故障點定位)PHP
- 教育直播平臺開發過程中,這些技術問題需要解決