等待MVC调用返回时,如何为新标签显示加载图像或进度条? - javascript

我在文件generateReport.cshtml中有一个HTML按钮,该按钮打开一个新选项卡以显示报告:

<div>
   <a id="btnPreviewPDF" class="btn" href="#" title="Preview Report" target="_blank">Preview</a>
</div>

这将启动reportController.cs中的MVC GET,该MVC GET创建供呈现报告的html使用的模型:

[GET("PreviewPdf/{id:int}/{reportDate}")]
        public virtual ActionResult PreviewReport(int id, string reportDate)
        {            
            var helper = new ReportHelper(client);
            var model = helper.GenerateViewModelForPreviewReport(id, reportDate);

            return View(model);
        }

然后,将上述模型在viewReport.cshtml中用作显示数据的模型,例如:

@model Reports.ReportHelper

<div class="sub-header-text primary-orange text-bold">
   Summary: @Model.ReportDate.ToString("MMMM") @Model.ReportDate.ToString("yyyy")
</div>

等待PreviewReport返回到reportController.cs的GET中可能需要30秒钟以上的时间,因此我想在通过单击“ Preview”按钮创建的新标签上显示加载图片/ gif。由于此GET命令在viewReport.cshtml中的HTML代码之前运行,因此我无法找到一种方法来执行此操作。我想在该新选项卡上显示加载图像,并防止浏览器抛出认为页面无响应的消息。谁能帮我或将我链接到一些信息?谢谢!

参考方案

您可以在页面上创建一个具有ID的空div。在ajax调用之前,设置html

$("#loadingDiv").html("Loading...");

成功执行ajax调用后,从div中删除html

$("#loadingDiv").html("");

它使用jQuery btw,但是如果您不使用它,我敢肯定您也可以使用普通的旧javascript来实现。

html onClick打开url存储在php变量中 - javascript

以下是我的代码,正在获取Uncaught SyntaxError: Unexpected token },但是我的代码中没有看到任何}。 window.open期望用引号引起来的url,我尝试了单引号和双引号的不同组合,但不起作用并且也无法在echo中转义双引号。请帮助谢谢..<?php $a = "https://www.google.co…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

html | textarea中的额外标签 - javascript

我正在尝试将Markdown从数据库加载到textarea:<textarea class="wmd-input" id="wmd-input" name="question" required="required"> <?php echo '**Th…

如何用jQuery隐藏模态? - javascript

纽扣<button type="button" class="btn" onclick="CountClass()" runat="server" data-toggle="modal" data-target="#inlineForm1�…