gpt4 book ai didi

c# - div.Visible 未在其他代码之前执行

转载 作者:行者123 更新时间:2023-11-30 22:21:07 25 4
gpt4 key购买 nike

我正在使用 c# 在 asp.net 中制作一个 Web 应用程序,它一次从 http Web 服务收集大量信息。由于这个数据收集过程需要 10-20 秒,我想显示一个带有小旋转图像的小加载框。

为了在一个页面上实现这一点,我有一个名为 loadingdiv 的 div,我将其 Visible 属性设置为 false 页面加载。当我的“查找电影”按钮被按下时,c# 代码应该隐藏页面上原来的内容,在后端加载 Web 服务信息时显示加载图像,然后隐藏加载图像并调出数据显示分区

如果我注释掉从 web 服务加载数据的类,则可以正常工作。但是,只要我添加我的 Web 服务信息,它就会完全跳过 loadingdiv.Visible = true 行,只执行 10-20 秒的操作。

这是相关的代码行。

 protected void btnFindMovies_Click(object sender, EventArgs e)
{
//Hides the main content that contained search options for movies
thisarticle.Visible = false;
articlediv.Visible = false;
lblGenres.Visible = false;
ratingdiv.Visible = false;
List<int> gList = new List<int>(); //Genre List

/* Other code that goes through checkboxes to find out which genres
to search for in the movie search */

string title = "Movie Title Here";
Page.Title = title;

loadingdiv.Visible = true; //Shows loading div before completing search

MovieSearch search = new MovieSearch(gList); //Intensive web service use
(10-20 seconds)
loadingdiv.Visible = false; //removes the loading div from the screen
}

如何让 loadingdiv 在我的 Web 服务操作过程中显示出来?

最佳答案

该方法中的所有操作都发生在向用户提供任何响应之前。这意味着会发生以下情况:

  • 用户点击您的按钮。
  • 向服务器发送请求并发生回发。
  • 在回发期间,btnFindMovies_Click 被触发。您设置 Visible = true,等待网络服务返回其信息,然后设置 Visible = false
  • 将响应提供给浏览器。

因为这都是在同一个请求上完成的,所以在完成所有这些之前不会向浏览器返回任何内容,这有效地完全消除了 loadingdiv.Visible = true; 行。

如果您希望在某些服务器端代码向 Web 服务发出请求时显示加载 div,则必须使用 AJAX 异步进行这些调用,并使用 Javascript 相应地隐藏/显示加载 div。

以下看起来像是 AJAX 的有用介绍指南:

http://www.simple-talk.com/dotnet/asp.net/ajax-basics-with-jquery-in-asp.net/

关于c# - div.Visible 未在其他代码之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14553751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com