【问题标题】:Display loading icon during Page.Redirect在 Page.Redirect 期间显示加载图标
【发布时间】:2016-03-21 11:00:02
【问题描述】:

我正在尝试在我的 Web 表单的页面之间显示某种加载图标。由于调用 Web 服务,某些页面需要一段时间才能加载。

我正在尝试在这些页面重定向期间实现加载微调器,直到页面准备就绪。

我试图用一个简单的方法来实现这一点:

Jquery
$(window).load(function () {
    $('#LoadingPanel').fadeOut(2000);
})

html
<div id="LoadingPanel" style="background-image: url(Images/loading_spinner.gif); background-position: center center; background-repeat: no-repeat; background-size: 100px 100px; height: 100px; width: 100px; position: fixed; z-index: 1000; left: 50%; top: 50%; margin: -25px 0 0 -25px">
</div>

唯一的问题是它实际上直到页面加载一分钟后才会出现。

我想要实现的目标可能吗?任何指导将不胜感激。

更新

Page1 :在第一页上,用户填写表格,然后点击一个按钮,该按钮将保存用户条目,然后重定向到另一个页面。

Protected Sub Btn_BestBuy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btn_BestBuy.ServerClick

    StoreDetails(sender, e)
    Response.Redirect("Plugin.aspx?step=4&results=best&stdid=" & STDID.Value & "&stid=" & STID.Value & IIf(Session("sid") <> "", "&sid=" & Session("sid"), ""))

End Sub

StoreDetails() 将用户条目保存到数组中,然后将数组移动到会话中:

Application("DETAILS_ARRAY") = DetailsArray

第 2 页:该页面使用第一页中输入的详细信息执行 Web 服务调用的第二页:

If Request.QueryString("results") = "best" Then

    GetSchemes(Service.PublicBestType.ALL)

End If

GetSchemes 调用 Web 服务并将所有数据返回到会话中,该会话绑定到页面加载底部的网格视图。

看起来正在发生的是当页面开始将数据绑定到网格时,会出现加载图标。

【问题讨论】:

  • 你试过$(document).ready(function(){})
  • 我有,它本质上做同样的事情。加载图标显示得不够早,但会在正确的时间消失。
  • 你的方法看起来不错。您的 div 位于页面的开头?
  • 是的,这是页面正文中的第一件事。
  • 好的。尝试将您的 css 添加到文件中,可能会更快。

标签: javascript jquery asp.net vb.net


【解决方案1】:

正如你在评论中所写的那样

单击按钮时应出现图标。它应该在页面重定向期间保持可见,并在第二个页面准备好后最终隐藏。

您在完成 web 服务调用后加载了一个完整的新页面?

为什么你不给你的 loadingPanel "display:none" 并在你的按钮点击事件中显示加载 div?

jQuery(document).on("click", "#yourBtn", function(event) {
    jQuery("#LoadingPanel").show();
    //your webservice call
});

当第二个页面最终加载完毕时,LoadingPanel处于基本状态 --> display: none;

【讨论】:

  • Web 服务调用是在第二个页面的初始页面加载期间完成的,并通过后面的代码完成,它返回几千条记录,因此需要一段时间。单击按钮时,它通过一个简单的功能将项目保存在网络表单中,然后开始页面。重定向到第二页。
  • 好吧,我误解了这个场景。你能多写一点你的代码吗?也许有一些我现在看不到的小故障。也许可以通过 AJAX 解决问题?所以你加载你的第二个页面,显示加载屏幕,然后通过 ajax 调用你的 web 服务,在 ajax 调用之后,你禁用加载屏幕
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-26
  • 2015-03-17
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多