powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Call Atlas function on unload event
12 сообщений из 12, страница 1 из 1
Call Atlas function on unload event
    #33929021
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я выше писал о зависании браузера. Я нашел, в чем причина, но как ее исправить не знаю. В общем, у меня на unload сообщение генерируемое телом страницы (body) вызывается серверная функция. OnComplete у меня при этом не вызывается. На тредюю загрузку страницы (открываем окно браузера, отркрываем в нем страницу, закрываем окно) браузер просот виснет. Почему? Какие есть варианты реализации данного подхода?
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33929807
ostap100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно,
У меня такая же функциональность работает без проблем. Если юзер сбегает со страницы, то атлас отсылает все данные формы в вэб сервис на анлоад.
Никаких проблем не было пока что...
Скинь код.

 
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33929983
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Странно,
O>У меня такая же функциональность работает без проблем. Если юзер сбегает со страницы, то атлас отсылает все данные формы в вэб сервис на анлоад.
O>Никаких проблем не было пока что...
O>Скинь код.

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Дело в том, что у меня не сервис, а .aspx страница. Кажется, я догадываюсь,в чем проблема. Просто выходит рекурсия: загружается страница, я ее закрываю, вызывается обработчик unload'а, который вызывает через AJAX серверную функцию, которая генерирует опять же ту самую страницу и пошло-поехало. Что думаете?

ЗЫ Кода сейчас нет, на работе... Выставлю завтра.
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33930668
ostap100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну может и так. Давай код посмотрим, а там видно будет.
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33930881
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Ну может и так. Давай код посмотрим, а там видно будет.

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Вот Default.aspx страница:


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
    <script language="javascript" type="text/javascript">
    function Form1_OnUnload()
    {
        PageMethods.Echo("Hello!", OnComplete);
    }
    
    function OnComplete(result)
    {
        alert(result);
    }
    </script>
</head>
<body onunload="Form1_OnUnload();">
    <form id="form1" runat="server">
        <atlas:ScriptManager ID="ScriptManager1" runat="server" />
        <div>
        </div>
    </form>

    <script type="text/xml-script">
        <page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
            <references>
            </references>
            <components>
            </components>
        </page>
    </script>
</body>
</html>

А вот серверная часть:



using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public string Echo(string str)
    {
        return str;
    }
}

ЗЫ На счет рекурсии уже не знаю... Протестировал, вроде, с ней все нормально. Так что я в полных потерях.
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33933116
ostap100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слушай, ну ничего криминального в твоем коде я не углядел. Но с другой стороны дебаг я не смог нормально сделать на клиенте. Он теряет соурс после вызова PageMethods.
Что такое PageMethods? Это Атлас прибамбас для вызовал веб методов страницы? Я не нашел в твоем коде ничего об этом...
Потом посмотри может броузер выделывается (к примеру какая нибудь фигня с чайлдом когда парента закрываеш)...
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33945060
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Слушай, ну ничего криминального в твоем коде я не углядел. Но с другой стороны дебаг я не смог нормально сделать на клиенте. Он теряет соурс после вызова PageMethods.
O>Что такое PageMethods? Это Атлас прибамбас для вызовал веб методов страницы? Я не нашел в твоем коде ничего об этом...
O>Потом посмотри может броузер выделывается (к примеру какая нибудь фигня с чайлдом когда парента закрываеш)...

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Да, PageMethods — это прибамбас Атласа. Через него можно получить на методы определенные в классе страницы помеченные как WebMethod. На счет схемы закрытия парента до чайлда... мне такая по сути не нужна. У меня он виснет при закрытии чайлда. Пока еще не могу понять, что происходит. Ты пробывал ео запускать?
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33948350
ostap100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слушай посмотрел твой код опять. Не работает он.
Если всю операцию делать ОнЛоад то все намано. Если ты ставиш эту функцию в АнЛоад то он сразу после PageMethods.Echo("Hello!", OnComplete); даже не попадая на сервер уходит.
Тут нужен другой подход. Обьясни суть твоего проекта может че получше придумать удастся...
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33949676
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Слушай посмотрел твой код опять. Не работает он.
O>Если всю операцию делать ОнЛоад то все намано. Если ты ставиш эту функцию в АнЛоад то он сразу после PageMethods.Echo("Hello!", OnComplete); даже не попадая на сервер уходит.
O>Тут нужен другой подход. Обьясни суть твоего проекта может че получше придумать удастся...

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Странно...
Суть в том, что мне надо сохранять стейт контролов (TreeView, GridView) при нажатии F5. У меня на странице несколько фреймов, и они возвращаются в первоначальный стейт, как при первой загрузке, что вообщем-то и правильно. Я думал сохранять стейт во время unload'а в сессии. У меня локально на работе отрабатывает только два раза, потом виснет. Дома тольк один... Не знаю, в чем проблема. На форуме MS ничго не отвечают по этому поводу. Сейчас сохраняю стейт при кликах по дереву (там линки, поэтому тоже через AJAX) или других событиях.
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33951147
ostap100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я использую обычный веб сервис. Он у меня ранается на пайдж анлоад и сохраняет данные в базу. Все работает нормально без проблем. Может тебе стейт в базу сохранять с сессией...
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33951742
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Я использую обычный веб сервис. Он у меня ранается на пайдж анлоад и сохраняет данные в базу. Все работает нормально без проблем. Может тебе стейт в базу сохранять с сессией...

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Да, думаю проблема тут не с сессией, а вообще с тем, что Atlas метод вызывается в unload. Попробую с веб-сервисом. Напишу результат.
...
Рейтинг: 0 / 0
Call Atlas function on unload event
    #33951866
Gaset
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, ostap100, Вы писали:

O>Я использую обычный веб сервис. Он у меня ранается на пайдж анлоад и сохраняет данные в базу. Все работает нормально без проблем. Может тебе стейт в базу сохранять с сессией...

O>
данное сообщение получено с www.gotdotnet.ru
O>ссылка на оригинальное сообщение


Попробывал. Тоже самое: два раза отрабатывает, а потом виснет:(
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Call Atlas function on unload event
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]