網(wǎng)站埋點匣砖,在頁面離開時掉接口提交頁面信息

問題描述:今天接到個之前沒處理過的需求偎肃,就是給網(wǎng)站的所有頁面做埋點结缚,在頁面離開的時候講此頁面的編碼和頁面中點擊了哪些按鈕的信息傳給后臺。


有點蒙蔽

第一步:這個需求我首先要保證的是在確定在頁面離開的時候要綁定的事件软棺,經(jīng)過一通百度找到了兩個離開的事件:分別是onunload和onbeforeunload,首先講一下他們兩個的區(qū)別

1.onunload 是在瀏覽器已經(jīng)獲取到了下一個頁面的內容红竭,即將要替換當前頁面的時候。

2.onbeforeunload是在瀏覽器即將向瀏覽器請求下一個頁面的時候

onbeforeunload在onunload之前發(fā)生喘落,onunload是無法阻止頁面的更新和關閉的茵宪,而 onbeforeunload 可以做到。所以我選擇了onbeforeunload這個事件瘦棋。onbeforeunload有以下兩種使用方法:

1.window.onbeforeunload=function(){

? ? ? ? return '提示信息'//? 這時會出現(xiàn)一個確認框稀火,問你是否要離開,里面的內容就是你自己的提示信息

}

2.window.onbeforeunload=function(){

functionName()// 在離開之前執(zhí)行我們想做的操作赌朋,執(zhí)行完成頁面才會離開

}

顯然我選擇了第二種方法

第二步:找到了事件鉤子凰狞,我們就該想辦法在離開之前掉接口了。我首先試了下ajax的jsonp (沒辦法老項目用的就是這些沛慢,框架還是jquery赡若,我也很委屈)。結果發(fā)現(xiàn) 狀態(tài)不是期望中的200团甲,而是canceled逾冬。。躺苦。說明接口并沒有成功發(fā)出頁面就跳轉了身腻,好的有一個坑出現(xiàn)了。(對了跟大家說個小技巧匹厘,谷歌的調試工具嘀趟,默認情況下在頁面跳轉的時候console和network 這兩欄都會刷洗沒法看到之前頁面的輸出與接口信息,但是谷歌都提供了相應的設置看下圖中的畫√的地方都有preserve選項)


之后又是一通百度愈诚,發(fā)現(xiàn)如果在這個地方用異步的ajax的話那瀏覽器在你掉接口之后不管你的接口是在waiting還是connecting還是已經(jīng)調用成功并返回了數(shù)據(jù)她按,瀏覽器都會直接跳到另一個頁面牛隅。跟據(jù)event loop的原理分析大概的原因就是因為你跳到了另一個頁面原來的event loop就會銷毀,那原來的異步隊列也就給銷毀了尤溜。所以請求就會被終止了倔叼。所以在這里我們就不能在用異步的ajax了,應該用同步的ajax(是不是很陌生宫莱。丈攒。。啊哈哈)


其實就是把async:true授霸;改成false就變成同步了巡验,這樣只有把這個請求執(zhí)行完了才會執(zhí)行$.ajax(){}這段代碼后面的內容。有點類似于es6中的await的意思碘耳。然后這里提醒下显设,這個坑解決的時候我又發(fā)現(xiàn)jsonp這種跨域方式,不支持同步辛辨,不過正常其他跨域方式(服務器代理捕捂,cros等)下用post或者get都是可以的(fetch沒試過還。斗搞。指攒。)這樣就完美解決了我的問題。

頭一次寫技術文章內容有點亂僻焚,接受批評討論允悦。估計這問題也不會有太多人看到···哈哈哈。自娛自樂吧虑啤。
歡迎交流微信:hellowzhenganlin

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末隙弛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子狞山,更是在濱河造成了極大的恐慌全闷,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣墨,死亡現(xiàn)場離奇詭異室埋,居然都是意外死亡,警方通過查閱死者的電腦和手機伊约,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孕蝉,“玉大人屡律,你說我怎么就攤上這事〗祷矗” “怎么了超埋?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵搏讶,是天一觀的道長。 經(jīng)常有香客問我霍殴,道長媒惕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任来庭,我火速辦了婚禮妒蔚,結果婚禮上,老公的妹妹穿的比我還像新娘月弛。我一直安慰自己肴盏,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布帽衙。 她就那樣靜靜地躺著菜皂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厉萝。 梳的紋絲不亂的頭發(fā)上恍飘,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音谴垫,去河邊找鬼章母。 笑死,一個胖子當著我的面吹牛弹渔,可吹牛的內容都是我干的胳施。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肢专,長吁一口氣:“原來是場噩夢啊……” “哼舞肆!你這毒婦竟也來了?” 一聲冷哼從身側響起博杖,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤椿胯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后剃根,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哩盲,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年狈醉,在試婚紗的時候發(fā)現(xiàn)自己被綠了廉油。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡苗傅,死狀恐怖抒线,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情渣慕,我是刑警寧澤嘶炭,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布抱慌,位于F島的核電站,受9級特大地震影響眨猎,放射性物質發(fā)生泄漏抑进。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一睡陪、第九天 我趴在偏房一處隱蔽的房頂上張望寺渗。 院中可真熱鬧,春花似錦宝穗、人聲如沸户秤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸡号。三九已至,卻和暖如春须鼎,著一層夾襖步出監(jiān)牢的瞬間鲸伴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工晋控, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汞窗,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓赡译,卻偏偏與公主長得像仲吏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝌焚,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容

  • 五十三:請解釋 JavaScript 中 this 是如何工作的裹唆。1.方法調用模式當一個函數(shù)被保存為一個對象的屬性...
    Arno_z閱讀 579評論 0 2
  • 第一章 入門 基本功能:訪問和操作 dom 元素,控制頁面樣式只洒,對頁面的事件處理许帐,與ajax完美結合,有豐富的插件...
    X_Arts閱讀 1,045評論 0 2
  • 本博客轉自:「作者:若愚鏈接:https://zhuanlan.zhihu.com/p/22361337來源:知乎...
    韓寶億閱讀 2,762評論 0 3
  • 我做了一個精致的咖啡杯毕谴,和一朵花成畦!然后我期待一個午后暖暖的陽光,我們喝咖啡涝开,賞花循帐! 請您看仔細,這是一個采蘑菇的小...
    愛的冒泡閱讀 510評論 4 2
  • 最喜古琴之音舀武,不同于古箏的清雅惧浴,而是于大雅之中更添寧靜,給人以更遼闊的想象天地奕剃。你聽衷旅,它來了…… 天未明。山林樹木...
    柔弋閱讀 336評論 2 6