我正在开发asp.net,C#web应用程序。 在应用程序中处理我的主页面,其中所有代码都是同步的并且运行良好。
现在,我需要使用ajax JQuery Asyn更改一些功能。调用。就我而言,它对我有用。一切都很好。
现在我的页面正在使用asp.net AjaX Timer Control,每隔一分钟就会出现一次。这是需要的功能之一,无法使用jQuery进行更改。
现在,当我的计时器事件(Tick)每隔一分钟触发时,我的动态填充div(ajax jquery的html())在页面获得回发时变为空白。
即。考虑我的页面具有id = div1的div,并且这充满了ajax jQuery调用,它返回我的远程页面的html,因此其内容完全是动态的。 当页面被触发时,该div为空白..
当我的网页回复时,如何让我的div保持原样?
(想想这可能是因为Gmail在同一件事上工作,它们是如何保留的?)
如果不清楚,请告知我是否需要更多详细信息。
以下是带有ajax调用的图像。
现在,当页面获得回发时,它就像下面的......
我不可能在这里提供复杂的代码,我怎么在这里给出一个示例代码。
<asp:ScriptManager ID="Scriptmanager1" runat="server">
</asp:ScriptManager>
<asp:Timer ID="Timer1" runat="server" Interval="5000" OnTick="Timer1_Tick" Enabled="true">
</asp:Timer>
<div>
<asp:Button Text="text" runat="server" OnClientClick="callfun();return false;" />
</div>
<asp:Button Text="text" runat="server" ID="btn" OnClick="btn_Click" />
<div id="div1">
</div>
<script>
});
function callfun() {
$("#div1").html("test me, test me");
}
</script>
代码背后.....
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("postback");
}
protected void Timer1_Tick(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(2000);
}
答案 0 :(得分:1)
请使用pageLoad()
。每次更新面板刷新后都会触发它。
var cached_html;
$(document).ready(function() {
cached_html = "html returned from an ajax call"
$("#div1").html(cached_html);
});
function pageLoad() {
$("#div1").html(cached_html);
//if this doesn't work, you need to make ajax call each time the refresh happens
}
暂时忘记gmail。他们没有 Sys未定义:)