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`的核心概念是创建一个覆盖整个页面的div元素,这个div作为遮罩层,可以通过透明度控制其可见性,以此达到半透明的效果,遮挡背景内容,突出显示特定信息。它支持自定义样式和内容,可以方便地与...
5. 在Excel中使用函数和公式时,需要遵循一定的语法规则。比如,函数名称后要跟一对圆括号(()),括号内可以包含参数,参数之间用逗号(,)分隔。参数可以是具体的数值、逻辑值(如TRUE或FALSE)、引用或文字字符串...
标题中的“arcgis api覆盖物动态聚合效果源码1”指的是使用Esri的ArcGIS API进行地图覆盖物的动态聚合功能实现。ArcGIS API是Esri公司提供的一个强大的JavaScript库,用于在Web浏览器中构建地理信息系统(GIS)应用...
在ASP.NET开发中,创建一个弹出层带遮罩层的效果是常见的需求,这通常用于显示模态对话框,如登录、确认操作或显示详细信息等。本篇将详细讲解如何实现这一功能,并以"divLogin"作为登录层,"doing"作为遮罩层为例...
jQuery完成进度插件Fort是一个专为前端开发设计的工具,用于在网页中创建美观且功能丰富的进度条组件。这个插件基于流行的JavaScript库jQuery构建,它简化了HTML、CSS和JavaScript之间的交互,使得开发者能够轻松地...
在本说明中,我们将深入探讨ExtJS中的模板(Template)使用,包括其概念、创建方法、以及如何结合代码示例进行实际应用。 一、ExtJS模板简介 在ExtJS中,模板是一种便捷的方式,用于动态生成HTML内容。它们通常与...
本文档是专为天文学家设计的一门关于如何使用Python进行科学计算与数据处理的入门课程。文档覆盖了从基础的Unix技能到Python编程的核心概念,以及如何利用这些技能来解决实际天文学问题。 #### 1. Unix 基础技能 -...
在`main`函数中,`fun3`被两次调用,展示了函数的局部变量和返回值的使用。 3. 题目3处理字符串和字符操作。它通过do-while循环对字符串中的数字进行操作,涉及到字符串处理、条件判断以及字符转换为整数。 4. ...
使用for循环遍历表格的行,内层循环遍历每一行中的单元格,并通过`onclick`属性为其添加单击事件处理器`AddObjOfText`。这里需要注意的是,文章中提到不应使用`setAttribute`方法来添加事件监听器,而是直接将函数...
上述代码中,`getClass`函数通过`getElementsByTagName`获取所有子元素,并通过`for`循环遍历每一个元素,使用`indexOf`方法检查`className`属性是否包含指定的class名。如果包含,就将其添加到结果数组中。 5. ...
### JS函数大全与JavaScript手册知识点解析 #### 一、JavaScript基础概述 ...以上内容覆盖了标题和描述中提及的知识点,以及部分补充内容,希望能够帮助到不熟悉JavaScript的读者更好地理解和掌握这门语言的基础知识。
遮罩层通常用于覆盖整个页面,使得用户在等待时无法进行其他操作,而加载效果则通常表现为动画或者进度条,让用户知道系统正在进行后台处理。 在给出的代码中,我们可以看到两个主要的函数:`showLoad()` 和 `...
11. 若要在数据库中物理删除记录并整理空间,应先使用`DELETE`命令删除记录,然后使用`PACK`命令整理。 12. FTP(File Transfer Protocol)是文件传输协议,用于在网络上进行文件传输。 13. 程序流程图(PFD)中的...
箭头函数没有自己的`this`,它继承自外部最近一层非箭头函数的作用域的`this`。 - **new目标**:普通函数可以作为构造函数使用;箭头函数没有`arguments`属性。 #### 6. 数组有哪些方法 常见的数组方法包括但不...
文档中提到,“鼠标框选的div位置的position最好父级元素是根元素的定位”,这是指使用`position: absolute;`或`position: fixed;`来确保元素可以覆盖在其他元素上,实现真正的框选。 5. 编写组件代码 组件的具体...
Val函数用于从字符串中提取数字,如果字符串中含有非数字字符,它会忽略这些字符,所以Val("123ab")等于123。 14. 方法覆盖。在面向对象编程中,子类可以重写父类的方法,即方法是可以覆盖的,所以这个选项是错误的...
根据提供的文件信息,这是一份关于“第二阶段_PHP软件工程师班”的课程资料,覆盖了120课时的教学内容。从文件的标题和描述中,并没有提供具体的知识点内容。不过,通过分析标签“技术及资料”以及部分内容中提及的...
JavaScript中的闭包是一种强大的特性,它允许函数访问和操作其外部作用域的变量,即使在其外部函数已经执行完毕后。这种现象的发生是因为JavaScript中的函数在定义时就形成了一个词法环境,这个环境包含了对外部作用...
2. **块(Blocks)**:允许在基础模板中定义可被覆盖的部分,便于子模板定制特定内容。 3. **Flask视图函数中的模板渲染**:通过Flask提供的`render_template`函数来渲染指定的HTML模板,并传递动态数据到前端展示。...
在`startSlide`函数中,我们可以记录滑块初始位置,`slide`函数计算并更新滑块的新位置,而`endSlide`函数则处理滑动结束时的逻辑,例如检查滑块是否达到预期位置。 滑块验证还需要一个隐藏的图像或背景,其中一...