zoukankan      html  css  js  c++  java
  • html5之Web Workers示例

         Web Workers使得html5也可以使用类似后台异步化、线程化的操作,让假死、卡不再存在,非常适合httpreqeust/io等操作。示例如下:

    x.htm

    <html>
    <head>
    <title>Web Workers</title>
    </head>
    <body>
    <div class="page">
     <div class="article">
      <h2 class="topic"><strong id="result">正在计算Fibonacci(35)...,你可以先看看下面的介绍!</strong></h2>
     </div>
    </div>
    </body>
    <script type="text/javascript">
    var wt = function(){
        if(typeof Worker == 'undefined'){document.getElementById('result').innerHTML = '你正在使用的浏览器暂时还不支持WEB Workers!';return;}
        var worker = new Worker("x.js");
        worker.onmessage = function(event){
            document.getElementById('result').innerHTML = event.data;
        };
        worker.onerror = function(event){
            alert('Worker error:'+error.message+'\n');
            throw error;
        };
        worker.postMessage('35');
    };
    wt();
    </script>
    </html>

    x.js:

    var fibonacci = function(n){
        var rv = {'0':0,'1':1},l=0,r=0,i=0;
        !function(n){
            if(!(n in rv)){
                l = rv[(n-1)]||arguments.callee(n-1);
                r = rv[(n-2)]||arguments.callee(n-2);
                rv[n] = l+r;
            }
            return rv[n];
        }(n);
        l = r = null;
        return rv[n];
    };

    var fibonacci2 = function(n){
        var i2 = 0;
        var fb2 = function(n){
            return n<2?n:arguments.callee(n-1)+arguments.callee(n-2);
        };
        return fb2(n);
    };

    var onmessage = function(event){
        var n = parseInt(event.data,10);
        postMessage(fibonacci2(n));
    };

  • 相关阅读:
    开发一款即时通讯App,从这几步开始
    即时通讯App怎样才能火?背后的技术原理,可以从这5个角度切入
    快速搭建一个“微视”类短视频 App
    iOS Push详述,了解一下?
    怒刷3000条短视频后,我终于发现网红300万点赞的套路
    如何精准实现OCR文字识别?
    30分钟彻底弄懂flex布局
    渲染管道
    游戏引擎架构Note2
    浮点数的内存表示方法
  • 原文地址:https://www.cnblogs.com/chuncn/p/2047478.html
Copyright © 2011-2022 走看看