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));
    };

  • 相关阅读:
    C#文件IO操作
    Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)
    CSS之看穿绝对定位 absolute(转)
    Flex 图片缩放、托拽效果 Zoom版
    图标制作软件 Axialis IconWorkshop 6.50 汉化版
    Flex鼠标右键事件及菜单
    static 静态方法
    计算sql语句的执行时间
    正则表达式示例及总结
    结构/表现/行为完全分离的tab选项卡JS版(转)
  • 原文地址:https://www.cnblogs.com/chuncn/p/2047478.html
Copyright © 2011-2022 走看看