Sys.StringBuilder

Одной из новых возможностей, появившихся в .NET 1.0, которая действительно позволяет поднять производительность, стал класс StringBuilder. Приложения, как правило, включают в себя массу фрагментов кода, напоминающих тот, что приводится ниже:

string s = "", t;
while () {
t = ;
s += t;
}

Проблема кроется в инструкции s += t, которая эквивалентна инструкции s = s + t. Всякий раз, когда исполняется такая инструкция, в памяти создаются копии s и t, затем эти копии объединяются и результат сохраняется в переменной s. Однако создание копии s снижает эффективность этой операции. Поэтому в классе StringBuilder используется оптимизированный алгоритм конкатенации строк.

Если говорить о JavaScript, то такой подход не дает сколько-нибудь заметного эффекта в экономии памяти (а реализация класса работает даже несколько медленнее, чем стандартный подход). Кроме того, на стороне клиента вопрос обеспечения высокой производительности стоит не так остро, как на стороне сервера. Тем не менее для поддержания единого стиля программирования на стороне клиента и на стороне сервера вы можете опираться на свои навыки программирования в .NET и использовать класс StringBuilder на стороне клиента.


В примере 4.5 демонстрируется работа класса StringBuilder. С его помощью выполняется конкатенация строк с целью создания некоего подобия шахматной доски в HTML.

Пример 4.5. Использование класса StringBuilder в ASP.NET AJAX
ClientStringBuilder.aspx
<%@ Page Language="C#" %>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd"> ASP.NET AJAX


(body)
(asp:ScriptManager ID="ScriptManager1" runat="server")
(/asp:ScriptManager)


(/body)


Встроенная в JavaScript функция String.fromCharCode() преобразует код ASCII в соответствующий ему символ, таким образом, вложенный цикл for выполняет перебор символов от «a» до «h».

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Интерфейсы
Клиентские версии классов .NET
Методы элементов DOM
Наследование классов
Объектно-ориентированные возможности JavaScript в ASP.NET AJAX