V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
zhanglangipis
V2EX  ›  JavaScript

12 行 javascript 代码能让浏览器崩溃 iPhone 自动重启

  •  
  •   zhanglangipis · 2016 年 1 月 28 日 · 6078 次点击
    这是一个创建于 3653 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 昨天在网上看到的这样几行 JavaScript 代码,觉得很神奇啊,有没有大神解释一下。

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

    慎点: http://www.ipis.com.cn/tetst.html

    27 条回复    2016-01-29 11:59:12 +08:00
    mytsing520
        1
    mytsing520  
    PRO
       2016 年 1 月 28 日
    执行 100W 次呗
    ThisDay
        2
    ThisDay  
       2016 年 1 月 28 日
    不断的把越来越长的字符串添加到历史记录里,浏览器占用内存也越来越大,就卡死了呗
    xuewl
        3
    xuewl  
       2016 年 1 月 28 日
    @leeyuzhe 正解
    aivier
        4
    aivier  
       2016 年 1 月 28 日
    听说三行代码搞崩浏览器?



    while(true) {
    document.appendChild(document.createElement("div"));
    }
    aivier
        5
    aivier  
       2016 年 1 月 28 日
    @aivier 手误了,

    while(true) {
    document.body.appendChild(document.createElement("div"));
    }
    buydip
        6
    buydip  
       2016 年 1 月 28 日
    Mac 下实测, CPU 飙升,温度飙升, chrome 卡死。
    jworg
        7
    jworg  
       2016 年 1 月 28 日 via Android
    Khlieb
        8
    Khlieb  
       2016 年 1 月 28 日 via Android
    Firefox 直接提示脚本正忙
    Kilerd
        9
    Kilerd  
       2016 年 1 月 28 日
    Chrome 使用了 3.5G 内存,然后内存爆表,然后 Chrome 自动重启
    bramblex
        10
    bramblex  
       2016 年 1 月 28 日
    @Kilerd
    活捉 /w\
    Ansen
        11
    Ansen  
       2016 年 1 月 28 日
    已把网址设置为书签,以后不用按两个键去重启了~
    c0878
        12
    c0878  
       2016 年 1 月 28 日
    chrome 才吃了 2G 多内存就崩溃了 没劲
    luban
        13
    luban  
       2016 年 1 月 28 日
    chrome 内存 3400M 后死掉重启,
    Kilerd
        14
    Kilerd  
       2016 年 1 月 28 日
    @bramblex 噢? 怎么又活抓我了。
    typcn
        15
    typcn  
       2016 年 1 月 28 日
    1 行 C 代码能让操作系统内核崩溃
    RT 昨天在网上看到的这样 1 行 C 代码,觉得很神奇啊,有没有大神解释一下。

    完整 C 代码如下:
    while(true){ fork() }


    2 行 C 代码能让操作系统重启
    RT 昨天在网上看到的这样 2 行 C 代码,觉得很神奇啊,有没有大神解释一下。

    完整 C 代码如下:
    setuid(0);
    reboot(RB_POWER_OFF);
    newbieo0O
        16
    newbieo0O  
       2016 年 1 月 28 日
    @aivier 还要 create ,何不直接 append body
    newbieo0O
        17
    newbieo0O  
       2016 年 1 月 28 日
    @aivier 看错了。抱歉
    guyskk
        18
    guyskk  
       2016 年 1 月 28 日
    _='_';while(_=_+_){history.pushState(0,0,_)}
    dikT
        19
    dikT  
       2016 年 1 月 28 日
    _='_';while(_+=_){history.pushState(0,0,_)}
    dikT
        20
    dikT  
       2016 年 1 月 28 日
    HadesYang
        21
    HadesYang  
       2016 年 1 月 28 日
    这有啥好试的,搞个循环吃内存嘛
    KiriGiri
        22
    KiriGiri  
       2016 年 1 月 28 日



    Edge 浏览器, 20s 内运行完,内存占用不超过 100M 。
    just1
        23
    just1  
       2016 年 1 月 28 日 via Android
    @KiriGiri edge 本来就不支持该函数
    gimp
        24
    gimp  
       2016 年 1 月 28 日
    是时候 @一下 fork 炸弹了

    :(){ :|:& };:
    BOYPT
        25
    BOYPT  
       2016 年 1 月 28 日
    @just1 http://caniuse.com/#search=pushstate
    支持的
    只是 edge 的实现没有 webkit 系那么耗资源, 1000000 次跑完了。
    zander
        26
    zander  
       2016 年 1 月 28 日
    zhpech
        27
    zhpech  
       2016 年 1 月 29 日
    @BOYPT 好像微软家要在 head 里做特殊处理才支持?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5282 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:43 · PVG 11:43 · LAX 19:43 · JFK 22:43
    ♥ Do have faith in what you're doing.