javascript - 执行 C# 代码并注册 JavaScript 启动脚本时,如何停止页面刷新?
问题描述
我有一个在 c# 中执行代码的按钮。后面的代码从数据库中获取一些信息并编写一段相当长的 JavaScript,然后注册并在客户端上运行。后面的代码如下所示:
protected void Button1_Click(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(@"
<script language='javascript'>
//Lots of JavaScript
</script>");
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "JCall1", sb.ToString(), false);
}
该代码可以正常工作并执行应有的操作。问题是在按下按钮和执行 JavaScript 之间,我得到了一个页面重新加载 Flash。我想停止那个闪光。我可以说它发生在 JavaScript 执行之前,因为我在 JavaScript 中做的第一件事就是启动一个处理图标。它在解决/处理一些承诺时旋转。闪烁发生在图标开始处理之前。一旦 JavaScript 启动(图标出现并旋转),一切都很好。这可能是我在此按钮的生命周期中不了解的内容。我推测当我 RegisterStartupScript 时,页面正在刷新以加载新脚本。我无法在 JavaScript 客户端中完成所有操作,因为需要将内部数据提供给 API。是的,如果网站是 . Net Core 和我可以在 Razor 页面中完成所有操作,但这不是我要处理的。它是网络表单。我可能对此无能为力,但如果有的话,我可以寻求帮助。
解决方案
我认为您正在寻找的是按钮单击以异步执行。这篇其他 SO 帖子应该可以帮助您根据需要制作它:Calling async method on button click
推荐阅读
- ios - Fatal error in array - Index out of range
- docker - 让 docker daemon 自动向防火墙添加规则
- android - 类需要 api 级别 21 - JobService (Firebase Jobdispatcher)
- javascript - 基于时间的文本
- solr - Apache Nutch 部分页面处理技巧
- javascript - Uncaught SyntaxError:当我从 API 接收 JSON 响应时出现意外标识符
- haskell - 为什么在 Haskell 中翻转和翻转(:) 函数不同?
- jmeter - 如何获得 404 响应代码的 Jmeter 报告?
- r - R ggplot改变图例中的颜色和图例序列
- python - 我可以根据它在内存中的地址或它的 id 调用一个 lambda 函数吗?