美文网首页
unload事件只偶尔触发

unload事件只偶尔触发

作者: monvhh | 来源:发表于2018-10-19 13:00 被阅读0次

曾自己借助阿里云和hexo搭了个站点,现已废弃,过往写的博客暂挪到此处。


title: unload事件只偶尔触发
date: 2016-12-12 16:55:22
tags:
- 技术
- Javascript
- 浏览器
- TODO


任务:在页面unload的时候发送此次访问页面滚动的最大值。
实现:在unload时绑定回调函数,给远程服务器发送数据。
问题:结果是偶尔发送,大部分情况下未发送。并且未发现什么规律。

原因:

谷歌良久,得到的两个观点:
1)unload事件不兼容,在很多浏览器下不触发;
2)unload时页面unload和给unload绑定的回调函数,在同时执行,所以不能在unload时做耗时的工作。

分析:

1)跟我的情况不符合,因为如果是因为chrome浏览器不支持,就不会出现偶尔发送的情况。
2)可能是。

解决:

1)给beforeunload和unload 事件 都绑定 该回调函数;
2)发送请求时采用同步的方式:

  request.open('GET', '/bar/foo.txt', false);  // `false` makes the request synchronous

3)没有办法解决。(这是网上百分之八九十的答案,但都是针对unload事件兼容的答案。)

最后我采用了1)的方式就解决问题了,所以2)就没有去尝试。

其他学到的知识:

1)在beforeunload事件时返回一个字符串,会在页面unload前展示给用户,并询问一次是否真的要离开页面。类似于一个confirm。这是浏览器自己做的。
2)在beforeunload和unload时,alert都失效。

TODO:pagehide和unload的区别?

看了mdn,知道概念,但是心里依然没数。

相关文章

  • unload事件只偶尔触发

    曾自己借助阿里云和hexo搭了个站点,现已废弃,过往写的博客暂挪到此处。 title: unload事件只偶尔触发...

  • DOM事件

    UI事件load 页面加载后触发 或者说是ing 嵌入的内容unload 当页面完全卸载在window上触发 同上...

  • vue事件修饰符 数据绑定与css样式

    事件修饰符 点击按钮先出发按钮的点击事件再触发div的点击事件,这就是事件冒泡 .stop阻止冒泡,点击按钮只触发...

  • dom事件机制

    事件触发三阶段window 往事件触发处传播,遇到注册的捕获事件会触发传播到事件触发处时触发注册的事件从事件触发处...

  • 小程序scroll-view上滑加载bindscrolltolo

    在容器内向下滚动内容至底部的时候,偶尔会出现不触发bindscrolltolower事件 还是可以触发但是 必须先...

  • 微信小程序中使用 bindscrolltolower 下拉加载有

    在容器内向下滚动内容至底部的时候,偶尔会出现不触发bindscrolltolower事件,还是可以触发,但是必须先...

  • 事件

    事件触发方法:onclick="单击触发事件";ondblclick="双击触发事件";onmousedown="...

  • 前端知识点记录总结

    HTML CSS JS 1. dom事件总结 unload:事件在用户退出页面时发生 onblur:失去焦点发生变...

  • 离开页面时的ajax埋点

    1. 监听页面离开 页面离开包括跳转到新页面和关闭页面 beforeunload 在unload之前触发,可用于阻...

  • 事件

    事件触发的三个阶段: window 往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件 ...

网友评论

      本文标题:unload事件只偶尔触发

      本文链接:https://www.haomeiwen.com/subject/jduyzftx.html