powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / html.SetContent и длинная строка
3 сообщений из 3, страница 1 из 1
html.SetContent и длинная строка
    #36088327
sutni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Есть ZEN страница, содержимое которой формируется на основании некоторого запроса. После выполнения запроса, все данные в нужном виде записываются в поток. Затем содержимое этого потока пытаемся записать в контент страницы. Когда размер потока меньше 3641144 символов - все ок. Когда больше - ошибка MAXLEN.

Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<composite xmlns="http://www.intersystems.com/zen">
<html id="DataContent" align="center">

</html>
</composite>
}

Method DrawDataContentInHtml(TypeOfEngine) [ ZenMethod ]
{	
	//set fullInnerHtml = ##class(%Library.ListOfDataTypes).%New()
	set fullInnerHtmlStream = ##class(%Stream.GlobalCharacter).%New()	
	set innerHtml = ""
	While tRS.Next()
	{
			set innerHtml=innerHtml_"...." //здесь наращиваем будущее содержимое страницы
                        if (innerHtml стала очень большой)
                        {
                             do fullInnerHtmlStream.Write(innerHtml) // скидываем текущее в поток
		             set innerHtml = ""
                        }
        }
        &js<    
        var html = zenPage.getComponentById("#(..id)#.DataContent");    // записываем в контент страницы
        html.setContent("#(fullInnerHtmlStream.Read(fullInnerHtmlStream.SizeGet()))#");
        >
}

Как побороть ограничение на длину строки в данном случае? Можно ли как-то не разом кидать контент, а наращивать его?
Заранее спасибо.
...
Рейтинг: 0 / 0
html.SetContent и длинная строка
    #36088535
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите такой пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
/// Этот XML блок описывает содержимое этой страницы.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
  <button caption="Тест" onclick="zenPage.GenHtml();"/>
  <html id="DataContent" align="center"/>
</page>
}

ClassMethod GenHtml() [ ZenMethod ]
{
  set innerHtml = "<br>asd7214234sfwqefkj234hrfi34u5ybgfu34yrvhbu4t23745bytvuwerty8o736bvgtkgurh78t26gbv45uti278465btvku5t"
  &js<
      var html = zenPage.getComponentById("DataContent");
     >	
  for i= 1 : 1 : 300  {
  &js<
      html.setContent(html.getContent()+"#(innerHtml)#");
     >	
  }
  Quit
}
...
Рейтинг: 0 / 0
html.SetContent и длинная строка
    #36088809
sutni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

Работает. Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / html.SetContent и длинная строка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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