javascript - 如何在網(wǎng)頁關(guān)閉前,通過ajax把訪問行為返回后臺(tái)??
問題描述
我想在網(wǎng)頁關(guān)閉時(shí),把采集到的訪問信息ajax到服務(wù)器,現(xiàn)有代碼大概如下,實(shí)測(cè)不可行。
window.onbeforeunload=function(e){visit_end=new Date(); visit_long=((visit_end.getTime()-visit_start.getTime())/1000).toFixed(1); //此處省略以上采集的訪問信息 ajax_visit_info(); //在關(guān)閉網(wǎng)頁時(shí),調(diào)用ajax函數(shù)發(fā)送到后臺(tái)。 //return confirm(’你真的要關(guān)閉嗎?’); //不想加上這個(gè),看起來不友好。 }
實(shí)測(cè),后臺(tái)壓根沒有接收到……!蛋!疼!
請(qǐng)問有什么方法??在不影響友好的情況下……
問題解答
回答1:onbeforeunload 是不靠譜的,有些瀏覽器不支持,而且不支持回調(diào)里的異步任務(wù)。
Service workers需要現(xiàn)代瀏覽器支持
所以還是基于其他事件觸發(fā)吧
回答2:只能 Service Worker 了
回答3:這個(gè)應(yīng)該就是數(shù)據(jù)上報(bào)吧,你可以看一下百度上報(bào)的實(shí)現(xiàn)
