| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Ожидание выполнения длительного процесса в ASP.NET
Допустим, у нас есть страница Default.aspx, на которой пользователь вводит имя клиента и номер накладной, после чего происходит проверка этого номера. Поскольку проверка может занимать длительное время, то необходимо обеспечить пользователя информацией о ходе выполнения процесса (идет или уже прошел). Наипростейший способ приведен ниже. Default using System; public partial class
_Default : System.Web.UI.Page protected Guid _id; protected void Page_Load(object
sender, EventArgs e) ThreadStart ts =
new ThreadStart(Check);
Response.Redirect("Invoice.aspx?ID=" + _id.ToString()); protected void Check() } Суть в том, что создается уникальный идентификатор. По которому результат будет получен из хэш-таблицы результатов. Пример класса таблицы CheckedInvoices и класса-заглушки, который в нормальном приложении выполняет проверку InvoiceProcessor, приведены ниже. CheckedInvoices using System; public static class
CheckedInvoices public static string
GetResult(Guid id) public static void Add(Guid
id, string value) public static void Remove(Guid
id) InvoiceProcessor using System; public static class
InvoiceProcessor Страница, на которую выполняется переадресация, должна лишь проверять готовность результата. Invoice using System; public partial class Invoice :
System.Web.UI.Page if (CheckedInvoices.GetResult(id).Length
== 0) Схема очень проста - на странице Default.aspx происходит постбэк, в этот момент создается новый уникальный идентификатор, который передается методу, выполняемумо в отдельном процессе. После этого происходит переадресация на страницу Invoice.aspx, где происходит проверка по идентификутору (переданому в GET запросе) в таблице CheckedInvoices, нет ли там данных. Если данных нет, то посылается заголовок, сообщающий браузеру о необходимости сделать Refresh, если же результат появился, то пользователю выводится результат, а ключ удаляеся из хэш-таблицы, поскольку больше не нужен. Рубрика: Учебник по ASP.NET
Подгрузка через AJAX HTML-кода, содержащег....
При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Обзор нового релиза самой мощной Ajax библ....
Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Firebug 1.3 и 1.4 alpha — что нового и инт....
Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.
Подробнее... |
Рубрика: Вебмастеру
| Добавлено: 19.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|