首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何显示“正在加载...”当中继器获得数据时

如何显示“正在加载...”当中继器获得数据时
EN

Stack Overflow用户
提问于 2010-05-19 17:57:15
回答 2查看 1.3K关注 0票数 1

我在ASP.NET页面上有一个数据中继器。它加载了很多东西,并且需要4-5秒来显示图像。我不能分页或获取项目的一部分,我需要显示所有的数据,所以我需要一个加载消息或gif,但我怎么做呢?有谁可以帮我?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-05-19 18:11:26

如果你的场景不是ajax one (经典的表单回发或者浏览器是通过点击链接来重定向的),我会在重定向/回发之前在html布局中插入动画gif (显示隐藏的div或者类似的东西)。AFAIK这种方法在老式浏览器上会有问题(动画将被冻结)

另一种方法称为page-processor?。浏览器被重定向到显示动画的中间页面,同时加载所请求的页面。

您还可以从服务器(Response.Write / Response.Flush)发送javascript代码,使当前页面具有动画效果。

我还建议阻止/隐藏UI控件,如“发送表单”,以拒绝不耐烦的用户点击两次,如果服务器响应太长。

票数 1
EN

Stack Overflow用户

发布于 2010-05-19 22:51:21

使用iframe。实际上,您可以在iframe中打开运行缓慢的页面,并使用iframe引发的事件来显示加载图像。

代码语言:javascript
运行
复制
<script type="text/javascript"> 

var t;

//on iframe state change display or hide the loader tag
function readyStateChanged(state)
{
    if (state == 'complete' || state == 4 || state == '4' || state == 'Complete')
    {
        //hide the loader
        document.getElementById('loader').style.display = 'none';
        clearTimeout(t);

    } else
    {
        //diaplay the loader
        document.getElementById('loader').style.display = '';

        //hide the loader if the iframe never loads
        t = setTimeout("hideLoader()", 5000);
    }
}


//hide the loading tag
function hideLoader()
{
    document.getElementById('loader').style.display = 'none';
    clearTimeout(t);
}    
</script>


<div id="loader" style="display: none;"><img />loading...</div>

<iframe id="frameX"  src="your_page.aspx" width="100%" height="400px" onload="hideLoader();" onreadystatechange="readyStateChanged(this.readyState);" ></iframe>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2864431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档