显示了ajax调用的覆盖层,但在没有ajax的情况下调用时不显示
Overlay layer shown for ajax calls but not when called without ajax
我有一个"加载"覆盖,当我调用ajax时会显示它。这很好用。覆盖在css中定义为:
.loading{
position:fixed;
z-index:1010;
top:0;
left:0;
height:100%;
width:100%;
background: rgba( 255, 255, 255, .9 )
url('http://url to image')
50% 50%
no-repeat;
}
它在js函数中被称为
function showLoading()
{
$("#layer").addClass("loading");
}
一旦ajax调用返回,我将调用一个隐藏层的hideLoading()
。所有这些都很好。
现在,我在点击时有一个按钮,我在该按钮上进行客户端进程密集型计算,最后将额外的内容加载到DOM中。这个函数称为calcDataPoints()
。我希望这样,当有人单击calc按钮时,我会显示覆盖,进行计算并更新DOM,然后隐藏覆盖。
所以我做了:
showLoading();
calcDataPoints();
hideLoading();
问题是覆盖永远不会被渲染。当计算"完成"而不是"之前"时,它会显示一微秒。因此,它没有达到预期的效果。
我在这里做错了什么?如何在计算开始前显示覆盖,并在计算结束并将数据写入DOM后关闭覆盖?
非常感谢任何指点!
这样调用:
setTimeout(showLoading, 10);
setTimeout(calcDataPoints, 2000);
setTimeout(hideLoading, 2000);
通过这种方式,我们可以异步调用类似的函数。
相关文章:
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- AJAX调用后Php结果未显示
- 是否可以将JXBrowser显示的JS确认对话框的结果返回到调用它的JS部分
- 显示指令时调用指令方法
- 对于Ajax调用,为什么innerHTML没有显示在IE中
- 如何在模式框中显示ajax调用返回的数据
- 显示错误的Ajax调用无法调试
- 从java调用javascript后显示空白页面
- 如何显示由ajax调用运行的PHP文件的echo
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- ng显示“;调用方法“;不起作用
- 在SPRING中从ajax调用响应时显示不可接受错误
- 仅显示 Google 表格中来自 api 调用的最新数据行
- Chrome在调试AJAX时只显示调用堆栈中的库行
- 未捕获的错误:没有定义显示调用
- 文本框值即时显示调用方法
- 在页面加载时显示调用操作栏
- Javascript - 显示调用方函数名称的通用函数
- 我怎样才能知道一个“回答”了多少次?通过我的jquery显示/调用
- 在页面加载和按钮点击时调用相同的js函数,并显示调用的两个函数