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

Содержание

Слайд 2

Постановка задачи
Использование объекта ViewState
Использование объекта SessionState
Проблема создания экземпляра HttpApplication


Постановка задачи Использование объекта ViewState Использование объекта SessionState Проблема создания экземпляра HttpApplication

Слайд 3

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

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

Постановка задачи Обновляемые элементы управления передаются в виде HTML обрамленного JSON Для
используется класс Web.UI.Page или его наследники
Отображение элементов управления распределено по времени (в несколько этапов)

Слайд 4

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

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

Слайд 5

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

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

Слайд 6

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

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

Слайд 7

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

Отказаться от использования
Реализация собственного SessionState
Прерывание текущих запросов

Использование объекта SessionState Отказаться от использования Реализация собственного SessionState Прерывание текущих запросов

Слайд 8

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

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

Слайд 9

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

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

Использование объекта SessionState Отмена обработки события Асинхронное событие public delegate void AsyncEventDelegate(EventArgs
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();
}

Слайд 10

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

private void RecycleNormalApplicationInstance(HttpApplication app)
{
if (this._numFreeAppInstances

Создание экземпляра HttpApplication HttpApplicationFactory.RecycleNormalApplicationInstance(HttpApplication app) private void RecycleNormalApplicationInstance(HttpApplication app) { if (this._numFreeAppInstances
< 100)
{
lock (this._freeList)
{
this._freeList.Push(app);
this._numFreeAppInstances++;
return;
}
}
app.DisposeInternal();
}

Слайд 11

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

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

Слайд 12

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

Создание экземпляра HttpApplication Критичные условия
Имя файла: Некоторые-проблемы-внедрения-Ajax-технологии-в-ASP.NET-проекты-Методы-их-решения.pptx
Количество просмотров: 329
Количество скачиваний: 0