Почему данные не передаются клиенту после простоя страницы в течение некоторого времени? - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть веб-сайт (веб-формы ASP.NET), и я использую плагин jQuery для построения дерева на стороне клиента.Для этого я строю строку с помощью StringBuilder, а затем получаю мои данные следующим образом:

dataForTree = "var data=" + sb.ToString() + ";";

Затем я передаю это в свое дерево с помощью RegisterClientScriptBlock, например:на моем клиенте я получаю такие данные:

<script type="text/javascript">
$(function () {
    $("#myTree").dynatree({
        children:   $(data)
        });
});

Теперь я знаю, что данные передаются правильно, потому что я получаю правильное представление дерева при загрузке, и все отлично.Когда я активирую узел, мне нужно отобразить некоторые данные об этом узле, поэтому я делаю обратную передачу для применения к серверу и снова передаю данные.Это также работает, все отображается великолепно.

Но затем я оставляю эту страницу ненадолго, достаточно нескольких минут и снова активирую узел.И тут есть проблема.Мое дерево исчезает.Когда я смотрю на код в отладчике Chrome или Firebug, я вижу, что переменной данных там нет.Хотя, повторяю, я передаю его клиенту при каждой обратной передаче.Почему это происходит - я никогда не знаю.Серьезно, я сломал голову над этим, я просто не понимаю, почему это так.

1 Ответ

0 голосов
/ 16 сентября 2011

Если вы используете un UpdatePanel, запомните, чтобы проверить, не истек ли сеанс в PreInit страницы:

     protected override void OnPreInit(EventArgs e)
     {
         if (Session["User"]==null )
            Response.Redirect("~/Login.aspx");
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...