需要数秒的网络通讯
1
otakustay 2017-08-21 10:57:07 +08:00
不能
|
2
denano 2017-08-21 11:16:44 +08:00 1
你可以试试监听关闭页面的事件,然后执行一个同步的方法。这样做的话如果方法执行时间比较长,就会有一种点了关闭页面却没有反馈的糟糕体验
|
3
shyling 2017-08-21 11:24:55 +08:00
耗时任务可以参考 Inbox 的处理。。。
|
4
lommo 2017-08-21 11:27:07 +08:00
直接关闭标签页 怎么执行
|
5
autoxbc 2017-08-21 11:36:08 +08:00 1
数据存本地,下次启动再同步
|
6
whileFalse OP |
7
jugelizi 2017-08-21 12:06:10 +08:00
都关页面了还回调?
|
8
annielong 2017-08-21 12:11:16 +08:00
服务端 session 或者 cookie,然后其他页面判断,实现是能实现,关键是看合适不合适
|
9
haitang 2017-08-21 12:13:14 +08:00
貌似应该做长连接( ws ),及时把下一步所需数据回传给后端保存,在页面关闭( ws 中断)后执行所需任务
|
10
7Brant 2017-08-21 12:28:56 +08:00 via iPhone
我觉着只能是 beforeunload 事件吧,如果这个符合「关闭页面时」...
|
11
66beta 2017-08-21 12:33:16 +08:00
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/onbeforeunload
window.onbeforeunload = function (e) { e = e || window.event; // 兼容 IE8 和 Firefox 4 之前的版本 if (e) { e.returnValue = '关闭提示'; } // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+ return '关闭提示'; }; |
12
fishman 2017-08-21 12:41:40 +08:00 via Android
技术上实现不方便的,可以从业务层考虑。比如用户点击关闭后给用户一个提示,拖点时间,在这个过程去执行你的回调。
|
13
jin5354 2017-08-21 12:41:49 +08:00
不能,浏览器在关闭页面时只允许弹个窗提示,不允许执行其他耗时任务
|
14
autoxbc 2017-08-21 12:42:05 +08:00
如果同步数据很重要,就应该在每一次数据变动时同步,而不是在关闭页面时再同步
|
15
lerry 2017-08-21 12:46:31 +08:00
搞一个 Chrome 插件怎么样
|
16
viko16 2017-08-21 12:48:20 +08:00 2
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon
虽然兼容不怎么样,但是 sendBeacon 就是为了干这个的 |
17
terrawu 2017-08-21 12:54:17 +08:00
outlook.com 之前这么干过,在天朝卡到飞起,后来取消了。
|
18
LeeSeoung 2017-08-21 14:39:33 +08:00
说目的,而不是说实现方式。。
|
19
winglight2016 2017-08-21 15:12:24 +08:00
@viko16 IE 和 Safari 都不支持,没法推广了
|
20
580a388da131 2017-08-21 17:03:35 +08:00
Windows 正在关机
|
21
liuzhedash 2017-08-21 17:37:08 +08:00
我只想在关闭时操作一下 localStorage,似乎也不行
|
22
371657110 2017-08-21 18:09:01 +08:00
之前分享 sendBeacon 的时候做了个 demo
发现监听 unload 事件时候发送一个同步请求可以阻塞 unload 进程... 所以.可以考虑下 sendBeacon |