C# &引用;请稍候,正在加载…”;在asp.net页面上加载页面时的文本

C# &引用;请稍候,正在加载…”;在asp.net页面上加载页面时的文本,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,在我的页面加载(在Default.aspx上)中,我调用了一个方法,该方法最后在页面上显示一些图像和文本。这需要超过30秒的时间来加载,因为它可以从各种外部API获取这些内容。 所以我想在这段时间内有一个“请稍候,正在加载应用程序…”的文本会很好 在咨询过Google之后,我想使用Ajax/jQuery是正确的选择。 但我不知道,如何真正做到这一点?或者你们会提出完全不同的建议吗 当然,我发现了一些提示,但它们并没有真正的帮助,因为它们只是从按下按钮或类似的动作开始的 我非常感谢您的帮助:-)A

在我的页面加载(在Default.aspx上)中,我调用了一个方法,该方法最后在页面上显示一些图像和文本。这需要超过30秒的时间来加载,因为它可以从各种外部API获取这些内容。 所以我想在这段时间内有一个“请稍候,正在加载应用程序…”的文本会很好

在咨询过Google之后,我想使用Ajax/jQuery是正确的选择。 但我不知道,如何真正做到这一点?或者你们会提出完全不同的建议吗

当然,我发现了一些提示,但它们并没有真正的帮助,因为它们只是从按下按钮或类似的动作开始的


我非常感谢您的帮助:-)

AJAX是一条可行之路。在呈现要发送给客户端的页面的过程中调用
Page\u Load
事件。如果未完成,则不会向客户端发送任何内容。因此,您首先必须向客户发送一些东西,然后才能从那里开始

你想要一个类似这样的机制我想:

  • 像现在一样生成ASP.NET页面。从加载的
    页面中删除所有可以移动到其他地方的代码。在该页面上显示等待光标
    
  • 创建一个可以获取长时间占用的资源
  • 调用web服务方法并在完成后加载检索到的结果

    • 多亏了帕特里克·霍夫曼,我才能够实现我想要的。 对于代码示例,我使用

      如果有人对代码感兴趣,给你。因为没有那么多,我将发布完整的信息

      这将启动页面,显示加载文本,5秒钟后,文本切换到来自web服务方法的结果(在同一项目中)

      Default.aspx

      <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>
      <!DOCTYPE html>    
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head runat="server">
          <title></title>
          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
          <script>
      
              $(document).ready(function () {
      
                  $.ajax({
                      type: "POST",
                      url: "SuperWebSvc.asmx/GetData",
                      contentType: "application/json; charset=utf-8",
                      dataType: "json",
                      success: function (response) {
                          var names = response.d;
                          // do here, whatever you want to do, after the web service method returned its stuff
                          $('#Content').html(names); // replaces the content of the div with id "content" (only for demo purposes, to keep it simple)
                      },
                      failure: function (response) {
                          alert(response.d); // show an alert box, if something goes wrong
                      }
                  });
              });
          </script>
      </head>
      <body>    
          <form id="frm" method="post">
              <div id="Content">
                  Please wait, fetching data...
              </div>    
          </form>    
      </body>
      </html>
      
      using System;
      using System.Collections.Generic;
      using System.Threading;
      using System.Web.Script.Serialization;
      using System.Web.Services;
      
      namespace WebApplication1
      {       
          [WebService(Namespace = "http://tempuri.org/")]
          [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
          [System.ComponentModel.ToolboxItem(false)]
          [System.Web.Script.Services.ScriptService]
          public class SuperWebSvc : System.Web.Services.WebService
          {    
              [WebMethod]
              public string GetData()
              {
                  Dictionary<string, string> name = new Dictionary<string, string>();
                  name.Add("1", "Luke Skywalker");
                  name.Add("2", "Han Solo");
                  string myJsonString = (new JavaScriptSerializer()).Serialize(name);
                  Thread.Sleep(5000); // wait for 5 seconds, this is just for demo purposes
                  return myJsonString;
              }
          }
      }
      
      
      $(文档).ready(函数(){
      $.ajax({
      类型:“POST”,
      url:“SuperWebSvc.asmx/GetData”,
      contentType:“应用程序/json;字符集=utf-8”,
      数据类型:“json”,
      成功:功能(响应){
      var name=response.d;
      //在web服务方法返回其内容后,在这里执行您想要执行的任何操作
      $('#Content').html(name);//将div的内容替换为id“Content”(仅用于演示目的,以保持简单)
      },
      故障:功能(响应){
      警报(response.d);//如果出现问题,显示警报框
      }
      });
      });
      正在提取数据,请稍候。。。
      
      Web服务(superwebvc.asmx)

      使用系统;
      使用System.Collections.Generic;
      使用系统线程;
      使用System.Web.Script.Serialization;
      使用System.Web.Services;
      命名空间WebApplication1
      {       
      [WebService(命名空间=”http://tempuri.org/")]
      [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
      [System.ComponentModel.ToolboxItem(false)]
      [System.Web.Script.Services.ScriptService]
      公共类SuperWebVC:System.Web.Services.WebService
      {    
      [网络方法]
      公共字符串GetData()
      {
      字典名称=新字典();
      名称。添加(“1”、“卢克·天行者”);
      名称。添加(“2”、“汉·索洛”);
      字符串myJsonString=(新的JavaScriptSerializer()).Serialize(名称);
      Thread.Sleep(5000);//等待5秒,这只是为了演示
      返回myJsonString;
      }
      }
      }
      
      在此处输入一些相关代码@smitpatel您会建议使用什么代码如果您能将问题缩小到特定的行,并明确提出关于某一特定事物的问题,您将获得更好的回答。正如指南中所解释的,创建一个。因为我不知道从哪里开始,所以我没有代码可以显示。目前我所能提供的一切都是在Page_Load中的一行方法调用。谢谢您的输入。啊,好的!一个web服务方法!我假设我可以对一个常用方法进行正常调用。我现在就去看看。从未使用过Ajax,所以这对我来说是全新的。使用web方法,您可以向外部公开一些信息。你不能仅仅从HTML页面调用任何方法。