精华内容
下载资源
问答
  • 项目jsp页面中查询操作后台处理完毕后返回处理结果提示信息,然后前台页面 ...javascript引擎是单线程的,为了避免dom操作,http请求等耗时较长阻塞线程,js提供事件循环功能,将一些异步操作或有io阻塞的...

    项目jsp页面中查询操作后台处理完毕后返回处理结果提示信息,然后前台页面
    alert弹框显示结果信息,但是发现页面重新绘制与弹出框顺序不确定,有时候会出现点击弹框“确定”按钮后jsp页面才进行重绘。希望能在页面重绘完成后再弹出提示信息。
    但是在这里插入图片描述
    网上查找资料后发现:
    javascript引擎是单线程的,为了避免dom操作,http请求等耗时较长阻塞线程,js提供事件循环功能,将一些异步操作或有io阻塞的操作都
    放入一个事件队列,先顺序执行同步代码,然后按顺序执行事件队列中的异步事件:
    这些事件包括:
    setTimeout() 设置异步延迟,DOM操作,网络io如ajax请求事件用户操作事件,比如鼠标点击等
    由于以上机制,导致alert函数会先于页面渲染事件执行。解决方法是将alert替换成其他弹层插件,或者将alert 函数放到setTimeout()函数中,让其和dom操作事件一样放入事件队列中执行:setTimeout(“alert(‘ok’)”,0)

    但是按照以上方法依然无效,接着查找资料发现,浏览器页面渲染重绘操作不在js
    引擎执行线程中,所以页面重绘与alert函数执行顺序不确定,因此只能将alert放入setTimeout中,并设置延迟以达到页面重绘先执行alert后执行的效果。
    添加延迟时间100ms后问题解决。

    展开全文
  • if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } ...
  •  function Test(){  //每隔3秒执行一次...window.onload = Test;   另外有setTimeout方法,这两个方法之间的区别就是:setInterval方法是每隔一段时间执行一次,是循环执行的,而setTimeout方法是页面
    

    //打开页面即执行Test方法

    window.onload = Test;


    function Test(){

        //每隔3秒执行一次timelyFun方法

        window.setInterval("timelyFun()",3000);

    }


     

    另外有setTimeout方法,这两个方法之间的区别就是:setInterval方法是每隔一段时间执行一次,是循环执行的,

    而setTimeout方法是页面加载完毕之后的规定时间内执行一次,就不再执行了

    展开全文
  • 数组创建无限循环的轮播图

    千次阅读 2019-01-18 16:07:32
    数组创建无限循环的轮播 1. 加载事件 防止刷新时第一张是空白板 如果没有这一段代码,一进来或者刷新,出现... window.onload = function () { changeImg1();//调用body相片的方法 } 2. 创建数组,在数组里存放...

    数组创建无限循环的轮播

    1. 加载事件 防止刷新时第一张是空白板
    如果没有这一段代码,一进来或者刷新,出现第一张相片都是空白板
    代码如下:

    <body> 
    //加载事件  ---- 防止刷新第一张是空白板
      window.onload = function () {      
          changeImg1();//调用body相片的方法
      }
    

    2. 创建数组,在数组里存放五张相片
    代码如下:

     <script type="text/javascript"> 
          var curIndex1 = 0; //相片的索引从0开始   
          var timeInterval1 = 3000;//时间间隔(单位毫秒),每隔3000毫秒进行下一张相片显示
          //定义一个存放照片位置的数组,可以放任意个,在这里放4个
          var arr = new Array();
          arr[0] = "'~/../../Content/img/9619575ff09bcd62a0dc9545c9730879.jpg'";//第一张相片索引值为0
          arr[1] = "'~/../../Content/img/c5fd1dea498565c64259503398bc5483.jpg'";//第二张相片索引值为1
          arr[2] = "'~/../../Content/img/504caf822354abcc15c014e91d4ecaf3.jpeg'";//第三张相片索引值为2
          arr[3] = "'~/../../Content/img/91db1d4921f9395174bd3e641b95d395.jpg'";//第四张相片索引值为3
          arr[4] = "'~/../../Content/img/09833464b9b1218ee587ba86bfc0fe88.jpg'";//第五张相片索引值为4
          //setInterval 创建一个定时器,参数是("调用函数",时间(单位毫秒)),执行这条语句的时候每隔设定的时间调用一次函数,通常用在定时弹出广告这方面。
          setInterval(changeImg1, timeInterval1);
          function changeImg1() {
          if (curIndex1 == arr.length -1) {//相片索引值等于数组长度-1时,(4=5-1)相片就会从第一张开始显示
          curIndex1 =0;//相片索引值就等于0
          } else {
          curIndex1 += 1;//否则相片的索引值加1,相片跳到下一张显示
          }
          //设置body的背景图片
          document.body.style.backgroundImage = "URL("+arr[curIndex1]+")";//显示对应的图片
     }
    </script>
    </body>
    
    展开全文
  • 我们都知道,如果我们对于一组元素(相同的标签)同时进行onclick事件处理的时候(在需要获取到索引的时候),一般是写一个for循环,但是onclick是一个异步调用的,所以会带来一个问题,当我们触发这个事件的时候,...

    问题描述

    我们都知道,如果我们对于一组元素(相同的标签)同时进行onclick事件处理的时候(在需要获取到索引的时候),一般是写一个for循环,但是onclick是一个异步调用的,所以会带来一个问题,当我们触发这个事件的时候,我们能获取的i值是for完整执行完后i的值,而不能获取到代码顺序里i的值,看一个例子

    window.onload = funtion(){
        var lis = document.getElementsByTagName('li');
        for( var i = 0; i < lis.length; i ++ ){
            lis[i].onclick = function(){
                console.log(i);//当我们点击面页里的li时候 i 总是等于lis.length
            };
        }
    };

    以前惯用的解决方式

    window.onload = funtion(){
        var lis = document.getElementsByTagName('li');
        for( var i = 0; i < lis.length; i ++ ){
            lis.index = i;
            lis[i].onclick = function(){
                console.log( this.index );//每个li对应有着自己的索引值,也就可以判断出是什么时
            };
        }
    };

    利用闭包解决

    window.onload = function(){
        var lis = document.getElementsByTagName('li');
        for( var i = 0; i < lis.length; i++ ){
            (function (n){
                lis[n].onclick = function(){
                    console.log( i + '-' + n );//i总是等于10 而n则是安装顺序
                };
            }(i));
        }
    };

    原理:闭包的局部作用域。由于这个你们函数总是和代码执行顺序一样的,所以n可以实时记录i的值。由于for每执行一次,就执行一次匿名函数,每一次执行有自己的执行环境,有着自己的作用域链,所以用这函数里面一个变量来记录一下实时的i的值,这个n是不会随着i的改变而改变的

    转载于:https://www.cnblogs.com/iron-whale/p/5268151.html

    展开全文
  • 原因是:函数调用外部变量时构成了闭包,里面的变量会受到影响,所以声明成一个只有自己可以访问的闭包即可: ...window.onload = function(){ var divs = document.getElementsByTagName("div"); for(var i = 0; ...
  • 好程序员Java学习路线分享JS中的面向对象在JS中,一般情况下我们都是直接写函数,直接调用,但是发现JS中也有new关键字,那么new关键字作为创建对象的...window.onload = function(){// 创建一个画布对象var canvas ...
  • HTML5 表单,新标签

    2017-11-03 19:46:08
    无标题文档 邮箱: 网址: 颜色: 日期 月份 时间 数字 电话 调整范围 爱吃: 苹果0 苹果1 ...window.onload = function(){ ... //定时器,循环调用hello函数,每隔1秒调用一次。 } var n=0;
  • 第二十六天

    2016-12-13 23:29:00
    今天打了一天的码。终于弄懂了一个关于按钮触发匿名函数,内部循环内容 ...window.onload = function(){ var ps=document.getElementsByTagName("p"); var uls=document.getElementsByTagName("ul")...
  • JS对象与面向对象

    2018-05-17 15:37:09
    Window.onload加载完成后执行 obj.name 点语法调用对象的属性name obj["name"] 关键字调用对象的属性name obj[str]=属性值 str属性名 删除对象时要先将内容先赋空然后在删除 数组是紧密型的数据存储容器,...
  • //循环调用现在时间函数(1s/次) //定义随机的数值,放入数组 var name= ["张三 ", "李四 ", "王五 ", "赵六", "田七 ", "将八 ", "国九 ", "任十 ", "朵法拉 ", "绿婆娘 ","舞法天女"]; //通过i.
  • 无间隙滚动

    2018-10-31 08:49:00
    /**滚动效果实现原理:*1.滚动元素动画改变元素高度直至为0;*2.将动画完毕的元素,添加到容器元素底部,...//初始化,进行调用window.onload = function () { var dl = new seamlessRolling(); //初始化动画,并配...
  • JS控制页面只刷新一次!!一次!!!!

    千次阅读 2019-03-13 14:26:13
    但是这种方法会让页面一直不断的刷新,这是因为当页面加载完成以后,我们让它刷新一次,那么浏览器就会重新向服务器请求数据,界面会重新加载,然后,加载完成又调用了location.reload()方法,这样就陷入了死循环,...
  • window.onload *function( ){ //将代码写在这里,在页面加载完成后执行 } 数组相关 for…in :对数组进行快速遍历 【格式】 :for ( var 变量 in 数组) for in效率比for循环效率高 push: 【格式】:数组.push...
  • window.onload = function () { var exportWordBtn = document.getElementById('exportWord'); exportWordBtn.onclick=function(){ var table_ = document.createElement("table"); table_.style....
  • 107个常用javascript语句

    2011-03-06 23:59:07
    86.当窗体第一次调用时使用的文件句柄:onload() 87.当窗体关闭时调用的文件句柄:onunload() 88.window.location的属性: protocol(http:),hostname( ("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href...
  • javascript函数的解释

    2011-02-26 11:03:52
    86.当窗体第一次调用时使用的文件句柄:onload() 87.当窗体关闭时调用的文件句柄:onunload() 88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a...
  • window.onload = function () { var exportWordBtn = document.getElementById('exportWord'); exportWordBtn.onclick=function(){ // 构建table表格 ---这里只是写个样例,需要什么数据就构建什么表格就行 ...
  • window.onkeydown = this.keydown.bind(this); window.onkeyup = this.keyup.bind(this); } player.prototype.keydown = function(event){ var keycode = event.which || event.keyCode; ...
  • 精通javascript

    2012-12-05 18:17:35
    • 1.1.htm 多段代码相互调用 • 1.2.htm [removed]与 • 1.3.htm 调用外部JavaScript文件 • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 ...
  • ExtAspNet_v2.3.2_dll

    2010-09-29 14:37:08
    -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel...
  • -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel...
  • 精通JavaScript

    2009-06-27 20:06:12
    • 1.1.htm 多段代码相互调用 • 1.2.htm <script>与 • 1.3.htm 调用外部JavaScript文件 • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 ...
  • window.onload = function () { var exportWordBtn = document.getElementById('exportWord'); exportWordBtn.onclick=function(){ // 构建table表格 var table_ = document.createElement("table"); var ...
  • JavaScript详解(第2版)

    2018-04-25 09:58:36
     13.3.1 onLoad和onUnLoad事件   13.3.2 onFocus和onBlur事件函数   13.3.3 onResize事件处理函数   13.4 鼠标事件处理   13.4.1 怎样使用鼠标事件   13.4.2 鼠标事件和图像——翻转   13.4.3 ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

windowonload循环调用