unload事件,刷新,顺序,不靠谱

window的unload事件,用起来不靠谱,为什么呢?

我做个测试来说明,在页面unload事件中做一个同步ajax请求,然后刷新页面,我来比较刷新时unload事件和get新页面请求发生的时间顺序,结果如下:

FF:
16:13:48 445766772 get
16:13:48 445766787 unload

unload在get之后

 

Chrome:
16:36:13 447111240 get
16:36:13 447111274 unload

unload在get之后

 

IE:
16:33:08 446926865 get
16:33:08 446926842 unload

unload在get之前

 

Safari:
16:38:08 447226350 get
16:38:08 447226386 unload

unload在get之后

 

Opera:
16:39:39 447317584 get

没有unload事件

 

结果是FF,Safari,Chrome竟然unload请求在get请求之后。就只IE符合正常逻辑unload完了再get。Opera索性不支持unload事件。

通过HTTP抓包分析FF是先获得新页面的html然后执行上页面的unload事件,然后开始请求新页面的资源。

如果某些处理依赖unload事件而又讲究顺序的话,那就可能对我们的程序造成问题,所以,unload事件还是尽量不用为好,不靠谱啊!

 

beforeubload也存在这个情况。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1