• 关于js的setTimeout


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>setTimeout作用解释1</title>
    <script type="text/javascript" >
    // bsd lisenced 2008 realazy
    (function(){
      
       // document.getElementById shorthand
       function get(id){
        return document.getElementById(id);
       }
      
       window.onload = function(){
        get('makeinput').onmousedown = function(){
         var input = document.createElement('input');
         input.setAttribute('type', 'text');
         input.setAttribute('value', 'test1');
         get('inpwrapper').appendChild(input);
         input.focus();
         input.select();
        }
        get('makeinput2').onmousedown = function(){
         var input = document.createElement('input');
         input.setAttribute('type', 'text');
         input.setAttribute('value', 'test1');
         get('inpwrapper2').appendChild(input);
         setTimeout(function(){
          input.focus();
          input.select();
         }, 0);
        }
    
    // 这个例子,onkeypress在字符出现之前触发,所以不加setTimeout拿到上一个变化。加了setTimeout拿到正在变化。
        get('input').onkeypress = function(){
          var input = this;
          setTimeout(function(){
            get('preview').innerHTML = input.value;
          },0);
          
        };
        
       }
    })();
    </script>
    </head>
    <body>
      文档更新一个线程,事件处理一个线程,浏览器处理html,css,js是单线程,处理了文档更新,没有额外线程处理事件。而setTimeout可以重新生成任务队列,所以你懂的。<br />
    <h1><code>setTimeout</code></h1>
    <h2>1、未使用 <code>setTimeout</code></h2>
    <button id="makeinput">生成 input</button>
    <p id="inpwrapper"></p>
    <h2>2、使用 <code>setTimeout</code></h2>
    <button id="makeinput2">生成 input</button></h2>
    <p id="inpwrapper2"></p>
    <h2>3、另一个例子</h2>
    <p><input type="text" id="input" value=""/><span id="preview"></span></p>
    <br />
    <span id="preview2"></span>
    </body>
    </html>

    合乎自然而生生不息。。。
  • 相关阅读:
    jtl转化成CSV格式的聚合报告
    JMeter--自动生成测试报告
    centos7中没有安装ifconfig命令的解决方法
    Tomcat 安装
    JDK安装
    iOS学习笔记(九)—— xml数据解析
    Wyn Enterprise用户行为日志分析
    详解Wyn仪表板图表中的趋势线
    报表中的条形码和二维码生成
    Wyn Enterprise连接达梦DM8数据库教程
  • 原文地址:https://www.cnblogs.com/samwu/p/2845566.html
Copyright © 2020-2023  润新知