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