`
libo_591
  • 浏览: 40282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于使用FOR,关于函数中DIV层的覆盖

J# 
阅读更多

1.用setTimeout代替for,提高页面体验

for(var i=0;i<50;i++){
     for(var j=0;j<100;j++){
            //do some thing
      }
}

 
在JS中使用如上代码,界面会出现类似线程阻塞一样的状态,
使用setTimeout代替for,改善页面体验,改成如下代码,

 

var myLRLindex=1;
function setLRL(){
	for(var j=1;j<100;j++){
		//do some thing
	}
	myLRLindex++;
	if(myLRLindex<50){
		setTimeout(setLRL,0);
	}
}

 

 

就好多了。当然,使用setTimeout所改变的资源,不能影响其他的与该段代码会同时运行的程序。

 

2.有些页面操作,处理时,不希望用户还能够点击页面,这时,可以用一个覆盖全屏的透明的div层来达到目的

 

创建div层的部分代码,

var div_wait = top.document.createElement('div');
div_wait.id='waitDiv_win';
div_wait.style.cssText='position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:1100;background-color: #000000; filter: alpha(opacity=30);';
div_wait.style.display='none';
top.document.body.appendChild(div_wait);

 使用中可能会出现一些问题,比如下面

 

function test1(){
	//1.层显示
	//2.一些耗时操作
	//3.层隐藏
}

  

 

可能会发现,这个覆盖全屏的div层,测试时还能显示,为什么这里就不出现了呢。

主要是放在一个函数中,那么在函数结束前,页面是不会刷新的。页面不刷新,则层显示还没有出来,层就被隐藏了。

如果你在其中加上alert();语句,就可以看到,实际运行过程中,层是显示过的。alert()语句会导致页面的刷新。

 

如果不使用alert(),该怎么办呢?

 

比较下面两个代码就可以了

 

1.需要alert()的

	var divTop=null;	
	function divAboveAll(){
		divTop = document.createElement('div');
		divTop.style.cssText='position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:1100;background-color: #000000; filter: alpha(opacity=30);';
		divTop.style.display='block';
		document.body.appendChild(divTop);
		window.status='123';
                                alert('div显示');
		for(var i=0;i<1000;i++){
			for(var j=0;j<1000;j++){
				try{
					var m=3+4;
					var n=4+5;
					var p=6+6;
				}catch(e) {}
			}
		}
		divTop.style.display='none';
	}

 

2.不需要alert的

 

var divTop=null;	
function divAboveAll(){
	divTop = document.createElement('div');
	divTop.style.cssText='position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:1100;background-color: #000000; filter: alpha(opacity=30);';
	divTop.style.display='block';
	document.body.appendChild(divTop);
	window.status='123';
	setTimeout(testdddd,0);
}
function testdddd(){
	for(var i=0;i<1000;i++){
		for(var j=0;j<1000;j++){
			try{
				var m=3+4;
				var n=4+5;
				var p=6+6;
			}catch(e) {}
		}
	}
	divTop.style.display='none';
}

   

分享到:
评论

相关推荐

    使用openDIV.js做遮罩层

    首先,`openDiv.js`的核心概念是创建一个覆盖整个页面的div元素,这个div作为遮罩层,可以通过透明度控制其可见性,以此达到半透明的效果,遮挡背景内容,突出显示特定信息。它支持自定义样式和内容,可以方便地与...

    EXCEL 公式与函数完全剖析

    5. 在Excel中使用函数和公式时,需要遵循一定的语法规则。比如,函数名称后要跟一对圆括号(()),括号内可以包含参数,参数之间用逗号(,)分隔。参数可以是具体的数值、逻辑值(如TRUE或FALSE)、引用或文字字符串...

    arcgis api覆盖物动态聚合效果源码1

    标题中的“arcgis api覆盖物动态聚合效果源码1”指的是使用Esri的ArcGIS API进行地图覆盖物的动态聚合功能实现。ArcGIS API是Esri公司提供的一个强大的JavaScript库,用于在Web浏览器中构建地理信息系统(GIS)应用...

    asp.net弹出层带遮罩层

    在ASP.NET开发中,创建一个弹出层带遮罩层的效果是常见的需求,这通常用于显示模态对话框,如登录、确认操作或显示详细信息等。本篇将详细讲解如何实现这一功能,并以"divLogin"作为登录层,"doing"作为遮罩层为例...

    jQuery完成进度插件Fort.zip

    jQuery完成进度插件Fort是一个专为前端开发设计的工具,用于在网页中创建美观且功能丰富的进度条组件。这个插件基于流行的JavaScript库jQuery构建,它简化了HTML、CSS和JavaScript之间的交互,使得开发者能够轻松地...

    ExtJS模板使用说明(含代码示例).zip

    在本说明中,我们将深入探讨ExtJS中的模板(Template)使用,包括其概念、创建方法、以及如何结合代码示例进行实际应用。 一、ExtJS模板简介 在ExtJS中,模板是一种便捷的方式,用于动态生成HTML内容。它们通常与...

    Python for Astronomers

    本文档是专为天文学家设计的一门关于如何使用Python进行科学计算与数据处理的入门课程。文档覆盖了从基础的Unix技能到Python编程的核心概念,以及如何利用这些技能来解决实际天文学问题。 #### 1. Unix 基础技能 -...

    C语言复习提纲(201520161)(1)[文].pdf

    在`main`函数中,`fun3`被两次调用,展示了函数的局部变量和返回值的使用。 3. 题目3处理字符串和字符操作。它通过do-while循环对字符串中的数字进行操作,涉及到字符串处理、条件判断以及字符转换为整数。 4. ...

    js修改table中Td的值(定义td的单击事件)

    使用for循环遍历表格的行,内层循环遍历每一行中的单元格,并通过`onclick`属性为其添加单击事件处理器`AddObjOfText`。这里需要注意的是,文章中提到不应使用`setAttribute`方法来添加事件监听器,而是直接将函数...

    JavaScript实现获取dom中class的方法

    上述代码中,`getClass`函数通过`getElementsByTagName`获取所有子元素,并通过`for`循环遍历每一个元素,使用`indexOf`方法检查`className`属性是否包含指定的class名。如果包含,就将其添加到结果数组中。 5. ...

    JS函数大全,JS手册,javscript手册

    ### JS函数大全与JavaScript手册知识点解析 #### 一、JavaScript基础概述 ...以上内容覆盖了标题和描述中提及的知识点,以及部分补充内容,希望能够帮助到不熟悉JavaScript的读者更好地理解和掌握这门语言的基础知识。

    Javascript 遮罩层和加载效果代码

    遮罩层通常用于覆盖整个页面,使得用户在等待时无法进行其他操作,而加载效果则通常表现为动画或者进度条,让用户知道系统正在进行后台处理。 在给出的代码中,我们可以看到两个主要的函数:`showLoad()` 和 `...

    2021-2022计算机二级等级考试试题及答案No.9357.docx

    11. 若要在数据库中物理删除记录并整理空间,应先使用`DELETE`命令删除记录,然后使用`PACK`命令整理。 12. FTP(File Transfer Protocol)是文件传输协议,用于在网络上进行文件传输。 13. 程序流程图(PFD)中的...

    js常见经典面试题汇总

    箭头函数没有自己的`this`,它继承自外部最近一层非箭头函数的作用域的`this`。 - **new目标**:普通函数可以作为构造函数使用;箭头函数没有`arguments`属性。 #### 6. 数组有哪些方法 常见的数组方法包括但不...

    vue封装一个简单的div框选时间的组件的方法

    文档中提到,“鼠标框选的div位置的position最好父级元素是根元素的定位”,这是指使用`position: absolute;`或`position: fixed;`来确保元素可以覆盖在其他元素上,实现真正的框选。 5. 编写组件代码 组件的具体...

    2021-2022计算机二级等级考试试题及答案No.9970.docx

    Val函数用于从字符串中提取数字,如果字符串中含有非数字字符,它会忽略这些字符,所以Val("123ab")等于123。 14. 方法覆盖。在面向对象编程中,子类可以重写父类的方法,即方法是可以覆盖的,所以这个选项是错误的...

    第二阶段_PHP软件工程师班(120课时).pdf

    根据提供的文件信息,这是一份关于“第二阶段_PHP软件工程师班”的课程资料,覆盖了120课时的教学内容。从文件的标题和描述中,并没有提供具体的知识点内容。不过,通过分析标签“技术及资料”以及部分内容中提及的...

    JS中的闭包理解。。。。。。。。

    JavaScript中的闭包是一种强大的特性,它允许函数访问和操作其外部作用域的变量,即使在其外部函数已经执行完毕后。这种现象的发生是因为JavaScript中的函数在定义时就形成了一个词法环境,这个环境包含了对外部作用...

    flask实战-模板实现公共导航.pdf

    2. **块(Blocks)**:允许在基础模板中定义可被覆盖的部分,便于子模板定制特定内容。 3. **Flask视图函数中的模板渲染**:通过Flask提供的`render_template`函数来渲染指定的HTML模板,并传递动态数据到前端展示。...

    纯JS实现滑块验证

    在`startSlide`函数中,我们可以记录滑块初始位置,`slide`函数计算并更新滑块的新位置,而`endSlide`函数则处理滑动结束时的逻辑,例如检查滑块是否达到预期位置。 滑块验证还需要一个隐藏的图像或背景,其中一...

Global site tag (gtag.js) - Google Analytics