为什么在页面空闲一段时间后,数据不传递给客户端?
Why isn't data passed to the client after a page has been idle for some time?
我有一个网站(ASP。. NET webforms),并使用jQuery插件在客户端构建树。为此,我用StringBuilder构建一个字符串,然后像这样拥有我的数据:
dataForTree = "var data=" + sb.ToString() + ";";
然后通过使用RegisterClientScriptBlock将其传递给树,如下所示:
if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "allData"))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "allData", dataForTree, true);
}
在我的客户端上,我收到这样的数据:
<script type="text/javascript">
$(function () {
$("#myTree").dynatree({
children: $(data)
});
});
现在我知道数据是正确传递的,因为我在加载时得到了正确的treeview,一切都很好。当我激活一个节点时,我需要显示关于这个节点的一些数据,因此我进行回发以应用到服务器,然后再次传递数据。这个也可以,一切都显示得很好。
然后我离开这个页面一段时间,仅仅几分钟就足够了,并再次激活节点。问题就来了。我的树消失了。当我在Chrome调试器或Firebug中查看代码时,我看到数据变量不存在。不过,我重复一遍,我在每次回发时都将它传递给客户机。为什么会这样,我从来不知道。说真的,我已经被它弄得头破脑裂了,我就是不明白它为什么是这个样子。
如果你使用的是unupdatepanel,记得在PreInit中检查Session是否过期:
protected override void OnPreInit(EventArgs e)
{
if (Session["User"]==null )
Response.Redirect("~/Login.aspx");
}
相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何将权限/授权数据传递到客户端Javascript
- 同源策略目的|用户数据与基本页面数据|客户端页面抓取
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 将数据发布到nodejs服务器到客户端
- websocket客户端在发送大数据时断开连接
- ASP.Net模型到Javascript-将数据从服务器传递到客户端
- AJAX 将数据从客户端(JS)发送到服务器(PHP)
- 是否可以使用googleanalystics.js在客户端获取推荐数据
- 有没有办法清除客户端上的XHR缓存数据
- 最小化在javascript中客户端/服务器之间发送的数据
- 使用 CSS3 数据属性进行客户端文本搜索
- 在 Angularjs 中浏览器页面的客户端加载中存储参考数据
- 客户端将EDN转换为JSON(HTML5应用程序使用的Datomic数据)
- 如何使用数据表进行客户端和服务器端的混合分页,以便对前X行进行客户端分页
- 正在服务器或客户端上生成数据
- 客户端数据存储
- 动态创建页面 og 元数据 - 客户端
- 安全的数据客户端缓存
- 从JSON数据(客户端或服务器端)获取JSONPath