目前只发现这两个可以阻塞一会线程,然后还能顺利让前面还未来得及生效的内容执行完。
如果想模拟有没有好方法?
原谅我运用场景不方便说= =。
1
yamedie 2019-06-09 15:42:28 +08:00 via Android
好像是各家浏览器自己的内部实现。
用 async/await 可以模拟? |
3
rabbbit 2019-06-09 15:54:36 +08:00
async await + setTimeout
|
5
murmur 2019-06-09 16:05:32 +08:00
这个阻塞不是简单的 async 你就不要想着完美实现了 能用 es3 语法实现的阻塞想想都神奇
|
7
setSweetChild 2019-06-09 16:13:38 +08:00 via Android
js 是单线程的,但浏览器不是啊。阻塞一个标签页应该是在 js 之外的浏览器层面做的
|
8
cyrbuzz OP @setSweetChild
是的呀,比如 360 浏览器就会标记页面之后跳转到安全提示。 |
9
yixiang 2019-06-09 16:20:00 +08:00
XMLHttpRequest 有同步模式。
然而,干嘛要阻塞,应该可以有不用阻塞达到目的的方法。比如,setTimeout, setImmediate, requestAnimationFrame |
12
wunonglin 2019-06-09 16:33:49 +08:00
|
14
yamedie 2019-06-09 16:37:01 +08:00 via Android
脱离场景空谈实现,有点难
|
15
orzorzorzorz 2019-06-09 16:42:45 +08:00
问问看能不能让客户换上 chrome 装上扩展,这个应该只能从外部来了
|
16
cyrbuzz OP |
17
orzorzorzorz 2019-06-09 16:55:53 +08:00 1
alert 不是 js 的方法,是浏览器的。
你写的 js 跑在浏览器里,而浏览器本身也有代码来组成浏览器本身这容器。alert 到底还是调用了浏览器注入的方法,具体如何实现,得去找找人家开源的代码了。 要实现这个,你得让用户用你定制的浏览器,常见的是弄个客户端了。 |
18
cyrbuzz OP @orzorzorzorz
受教了,感谢。 |
19
liuzhiyong 2019-06-09 22:01:58 +08:00
@yixiang 你这个是正确答案。
|
20
liuzhiyong 2019-06-09 22:03:41 +08:00
@cyrbuzz XHR 可以做成阻塞模式的。
|
21
zhw2590582 2019-06-10 09:22:34 +08:00 via iPhone
浏览器自己实现的接口,没什么特殊的
|