Javascript asp.net页面首次加载-在所有内容之前显示加载div
我有一个asp页面。 在第一次加载页面时,函数页面的加载需要很长的时间才能完成(15秒),我不能缩短它 我想做到这一点: 页面显示的第一件事是一个带有单词loading的div。然后在页面加载完成后,我想让它消失Javascript asp.net页面首次加载-在所有内容之前显示加载div,javascript,html,asp.net,Javascript,Html,Asp.net,我有一个asp页面。 在第一次加载页面时,函数页面的加载需要很长的时间才能完成(15秒),我不能缩短它 我想做到这一点: 页面显示的第一件事是一个带有单词loading的div。然后在页面加载完成后,我想让它消失 如何实现这种行为 您可以有一个加载消息面板和一个内容面板。 这将允许页面首先呈现加载消息,然后为长请求调用请求 void Page_Load(){ var fromMsg = Request["loading"] == "1"; if (!fromMsg) {
如何实现这种行为 您可以有一个加载消息面板和一个内容面板。 这将允许页面首先呈现加载消息,然后为长请求调用请求
void Page_Load(){
var fromMsg = Request["loading"] == "1";
if (!fromMsg) {
LoadingPanel.Visible = true;
ContentPanel.Visible = false
} else {
// Load Heavy Content Here
}
}
然后在加载面板中添加一些javascript来调用重载
<asp:Panel id="LoadingPanel" runat="server" Visible="false">
<h2>Loading...</h2>
<script type='javascript'>
window.setTimeout(function(){
location.href = location.href += "&loading=1";
}, 400);
</script>
</asp:Panel>
<asp:Panel id="ContentPanel" runat="server">
...
</asp:Panel>
加载。。。
setTimeout(函数(){
location.href=location.href+=“&loading=1”;
}, 400);
...
如果加载消息很简单,那么您可以在CodeBehind中通过以下简单的方式完成同样的事情
void OnInit()
{
var fromMsg = Request["loading"] == "1";
if (!fromMsg) {
Response.Clear();
Response.Write("<h2>Loading....</h2>");
Response.Write("<script type='text/javascript'>window.setTimeout(function(){ location.href = 'ThisPage.aspx?loading=1'; }, 400);
Response.End();
}
}
void OnInit()
{
var fromMsg=请求[“加载”]=“1”;
如果(!fromsg){
Response.Clear();
响应。写入(“加载…”);
Response.Write(“window.setTimeout(function(){location.href='ThisPage.aspx?load=1';},400);
Response.End();
}
}
如果您需要在很多页面上执行此操作,您可以创建一个帮助程序库来生成消息HTML,并使用ScriptManager设置刷新JSHi,非常感谢!!这听起来似乎可以解决问题,但这是一种好的做法吗?这听起来有点不正确,不是吗?这是您可以获得早期“加载消息”的唯一方法“对于浏览器来说,要么写一个最小数量的响应。Flush(),要么呈现一个小的加载页面并重定向到重页面。使用WebForms,您可能会收到响应的副作用。Flush,但您肯定可以使用它,看看会发生什么。我在这里仅使用javascript代码进行了解释: