13
Некоторые проблемы Некоторые проблемы внедрения внедрения Ajax Ajax технологии в технологии в ASP.NET ASP.NET проекты проекты Методы их решения Методы их решения Правук Роман Правук Роман Разработчик программного обеспечения Разработчик программного обеспечения [email protected] [email protected]

некоторые проблемы внедрения Ajax технологии в Asp.Net проекты роман правук

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

Некоторые проблемы Некоторые проблемы внедрения внедрения Ajax Ajax технологии в технологии в ASP.NET ASP.NET проектыпроекты

Методы их решенияМетоды их решения

Правук РоманПравук РоманРазработчик программного обеспеченияРазработчик программного обеспечения[email protected]@AVIcode.com

Page 2: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Постановка задачиПостановка задачи Использование объекта Использование объекта

ViewStateViewState Использование объекта Использование объекта

SessionStateSessionState Проблема создания Проблема создания

экземпляра экземпляра HttpApplicationHttpApplication

Page 3: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Постановка задачиПостановка задачи

Обновляемые элементы управления передаются в виде HTML обрамленного JSON

Для обработки запросов используется класс Web.UI.Page или его наследники

Отображение элементов управления распределено по времени (в несколько этапов)

Page 4: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта ViewStateViewState

Page 5: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта ViewStateViewState

Page 6: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта SessionStateSessionState

Page 7: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта SessionStateSessionState

• Отказаться от использования

• Реализация собственного SessionState

• Прерывание текущих запросов

Page 8: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта SessionStateSessionState

Page 9: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Использование объекта Использование объекта SessionState SessionState Отмена обработки событияОтмена обработки события

• Асинхронное событиеpublic delegate void AsyncEventDelegate(EventArgs e);

public void OnAsyncEvent(){

Thread thread = new Thread(new ThreadStart(OnEvent));

thread.CurrentCulture = Thread.CurrentThread.CurrentCulture;

thread.Start();

while(!IsCompleted){

if(!HttpContext.Current.Response.IsClientConnected){

thread.Abort();

HttpContext.Current.Response.End();

return;

}

Thread.Sleep(10);

}

}

private void OnEvent(){

HttpContext.Current = context;

asyncEvent(args);

IsCompleted = true;

}

• Создание событияprotected override void OnInit(EventArgs e)

{

new AsyncEventWrapper(new AsyncEventDelegate(base.OnInit), e, Context).OnAsyncEvent();

}

Page 10: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Создание экземпляра Создание экземпляра HttpApplicationHttpApplication HttpApplicationFactory HttpApplicationFactory..RecycleNormalApplicationInstance(HttpApplication app) RecycleNormalApplicationInstance(HttpApplication app)

private void RecycleNormalApplicationInstance(HttpApplication app)

{

if (this._numFreeAppInstances < 100)

{

lock (this._freeList)

{

this._freeList.Push(app);

this._numFreeAppInstances++;

return;

}

}

app.DisposeInternal();

}

Page 11: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Создание экземпляра Создание экземпляра HttpApplicationHttpApplicationНеблагоприятные условияНеблагоприятные условия

Page 12: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Создание экземпляра Создание экземпляра HttpApplicationHttpApplicationКритичные условияКритичные условия

Page 13: некоторые проблемы внедрения Ajax технологии в Asp.Net проекты   роман правук

www.rit2007.ru

Вопросы