|
УФ ТЗ на форме(данные колелкция) с картинками | ☑ | ||
---|---|---|---|---|
0
samozvanec
08.08.16
✎
15:37
|
есть управляемая форма, на ней табличка с картинками в строках. все бы ничего, да вот тормозит это дело. в тестовом варианте строк десяток-другой, а в продакшене и до тысячи может дойти.
картинки обжимаем до 15-30кб. такое ощущение, что он их при пролистывании считывает каждый раз. платформа 8.2.19.106, толстый клиент управляемое приложение. можно ли как-то это дело ускорить? http://radikal.ru/lfp/s019.radikal.ru/i640/1608/16/eae08f2497bb.png/htm |
|||
1
Nuobu
08.08.16
✎
15:40
|
Как картинку выводишь?
|
|||
2
DmitrO
08.08.16
✎
15:40
|
А в тонком?
|
|||
3
Ёпрст
08.08.16
✎
15:40
|
ну разве что вебстраничку показывать, а не 1с-ый контрол
|
|||
4
Lexey_
08.08.16
✎
15:42
|
(0) "...такое ощущение, что он их при пролистывании считывает каждый раз" т.е. отладчику ты не доверяешь?
|
|||
5
samozvanec
08.08.16
✎
15:42
|
(1) адрес временного хранилища сую
(2) а в тонком это дело не заведется, да и потребности нет. сделал бы на обычных, но не получилось картинку в строки (3) это как? пользователь все это дело вводит/редактирует, какой тут еще контрол может быть? |
|||
6
samozvanec
08.08.16
✎
15:43
|
(4) отладчик никуда не заходит, поэтому и ощущение. ощущения присутствия платформенных механизьмов
|
|||
7
Nuobu
08.08.16
✎
15:44
|
(6) что значит "никуда не заходит"? Есть точки останова, есть замер производительности. Что замер говорит?
|
|||
8
DmitrO
08.08.16
✎
15:44
|
(5)т.е. все картинки сначала во временное хранилище опускаются? однако..
|
|||
9
Fragster
гуру
08.08.16
✎
15:46
|
(0) смирись. 1с по одной эти картинки получает, даже если у них адрес одинаковый.
вариант только сделать коллекцию или html документ со встроенными через dataurl картинками |
|||
10
Fragster
гуру
08.08.16
✎
15:47
|
и в 8.3.8 также тормозит
|
|||
11
samozvanec
08.08.16
✎
15:50
|
(7) значит не останавливается на точках останова при прокрутке. и в замере пусто.
тормоза при прокрутке списка, кстати) (8) пользюк выбирает картинку, она в обжатом и необжатом варианте кладется в хранилище (9) пичалька. " сделать коллекцию или html документ со встроенными через dataurl картинками" я так понимаю, работать как с 1сными контролами в таком варианте нельзя, только для просмотра? |
|||
12
Ёпрст
08.08.16
✎
15:51
|
(11) будешь так же ловить клик на странице и обрабатывать действия
|
|||
13
Nuobu
08.08.16
✎
15:53
|
Не сталкивался, но можно попробовать сделать порционный вывод. Типо по 100-200 штук.
|
|||
14
Fragster
гуру
08.08.16
✎
15:55
|
(11) ну вот я договорился, что с префиксом v8: запизиваю навигационные ссылки, с префиксом tel: телефоны (1с звонит у меня), получилось так:
Адрес = ДанныеСобытия.Href; Если Не ЗначениеЗаполнено(Адрес) Тогда Возврат; КонецЕсли; СсылкаТелефон = "tel:"; СсылкаЭлемент = "v8:"; Если Найти(Адрес, СсылкаЭлемент) = 1 Тогда ПерейтиПоНавигационнойСсылке(Сред(Адрес, СтрДлина(СсылкаЭлемент) + 1)); ИначеЕсли Найти(Адрес, СсылкаТелефон) = 1 Тогда Если сфпФормаТелефон <> Неопределено Тогда сфпФормаТелефон.НабратьНомерКИ(Партнер, Сред(Адрес, СтрДлина(СсылкаТелефон) + 1)); КонецЕсли; Иначе ЗапуститьПриложение(Адрес); //СтандартнаяОбработка = Истина; КонецЕсли; также можно придумать префиксы со стандартными командами и их подобным образом обрабатывать. |
|||
15
Fragster
гуру
08.08.16
✎
15:55
|
договорился сам с собой
|
|||
16
Fragster
гуру
08.08.16
✎
15:57
|
а вот штука, которая получает dataurl:
&НаСервереБезКонтекста Функция ПолучитьDataUrlКартинки(Знач Картинка) Если Картинка = Неопределено Тогда Картинка = Новый Картинка; КонецЕсли; Стр = Base64Строка(Картинка.ПолучитьДвоичныеДанные()); Стр = СтрЗаменить(Стр, Символ(10), ""); Стр = СтрЗаменить(Стр, Символ(13), ""); Возврат Стр; КонецФункции |
|||
17
Fragster
гуру
08.08.16
✎
15:58
|
а так оно в макете в блоке со стилями (подставляется через стрзаменить):
.mark_bg { height: 16px; width: 16px; background-image: url("data:image/png;base64,&_КартинкаПометок"); } |
|||
18
Fragster
гуру
08.08.16
✎
15:59
|
только там есть какое-то ограничение на размер, может и не прокатить. в таком случае можно класть в общедоступное место и через src= у img указывать прямую ссылку. тогда тоже намного быстрее, чем стандартный 1с вариант работает
|
|||
19
samozvanec
08.08.16
✎
15:59
|
(14) ой погоди, это у тебя в поле хтмл документа такая байда и ты клики по ссылкам перехватываешь?
|
|||
20
Fragster
гуру
08.08.16
✎
16:00
|
(19) да
|
|||
21
samozvanec
08.08.16
✎
16:03
|
(20) ох... ща переварю) а сам контрол ты по шаблону рисуешь? типа хтмл страничка каждый раз генерится? со стилями - с CSS?
|
|||
22
Nuobu
08.08.16
✎
16:05
|
(19) То есть можно отловить нажатие на гиперссылку в поле ХТМЛ?
|
|||
23
DmitrO
08.08.16
✎
16:09
|
(18)слушай, я тут недавно выяснил что в поле html вполне нормально отображаются картинки по внутренним навигационным ссылкам 1С, поэтому перекладывать картинку в inplace не обязательно вроде как..
|
|||
24
Fragster
гуру
08.08.16
✎
16:18
|
(23) только тормозит, как и в (0)
|
|||
25
Fragster
гуру
08.08.16
✎
16:21
|
(21) типа того. получается что-то типа того: https://i.imgur.com/1UDgupB.png
|
|||
26
samozvanec
08.08.16
✎
16:27
|
(25) о как. а нажатие на ссылку как ловишь? " Адрес = ДанныеСобытия.Href; " это в onclick происходит?
|
|||
27
Fragster
гуру
08.08.16
✎
16:27
|
да
|
|||
28
Nuobu
08.08.16
✎
16:29
|
(27) Можешь ссылкой кинуть, где ты про всё это узнал?
|
|||
29
samozvanec
08.08.16
✎
16:29
|
(27) понял. спасибо за идею! теперь надо взвесить, насколько оно мне надо) может и фиг с ним, что тормозит, на тысяче строк надо потестить. а так вообще прикольно, таким образом я еще не извращался)
|
|||
30
Fragster
гуру
08.08.16
✎
17:40
|
(28) про что?
|
|||
31
Nuobu
08.08.16
✎
17:42
|
(30) Про то, как из HTML отлавливать событие клика. Или разжевать для меня, пожалуйста.
|
|||
32
Fragster
гуру
08.08.16
✎
17:43
|
(31) Расширение поля формы для поля HTML документа.ПриНажатии (Form extension for a HTML document field.OnClick)
Расширение поля формы для поля HTML документа (Form extension for a HTML document field) ПриНажатии (OnClick) Синтаксис: ПриНажатии(<ДанныеСобытия>, <СтандартнаяОбработка>) Параметры: <ДанныеСобытия> Тип: ФиксированнаяСтруктура. Параметр заполняется фиксированной структурой со свойствами (всегда английского написания): Anchor - Неопределено или элемент А, если нажали на ссылку; Element - элемент, на который нажали; Button - Неопределено или элемент input c типом button или элемент button, если нажали на кнопку; Event - передается информация о событии, специфичная для используемого браузера; Document - документ, являющийся владельцем элемента, на котором было произведено нажатие; Href - Неопределено или значение поля Href элемента А. При этом, если в событии браузера используется ссылка с закодированными символами, не являющимися символами латинского алфавита, то в данном свойстве строка будет содержать раскодированные символы. При использовании свойств и методов этих объектов, в связи с особенностями объектных моделей различных браузерах, их написание необходимо приводить в соответствии с требованиями конкретной модели. Свойство Element всегда заполняется объектом, на который непосредственно нажали. Свойства Anchor и Button, заполняются только тогда, когда нажатие произошло на ссылке или кнопке. Например, ссылка, тег А может иметь вид <a href=”about:blank”> <b>bold anchor text</b> normal anchor text </a>. После нажатия на normal anchor text, фиксированная структура заполнится следующим образом: Данные.Anchor = ЭлементА; Данные.Element = ЭлементА; Данные.Button = Неопределено; Данные.Document = ЭлементА.document/ЭлементА.ownerDocument; Данные.Href = decodeURI(ЭлементА.Href). А после нажатия на bold anchor text, то структура заполнится: Данные.Anchor = ЭлементА; Данные.Element = ЭлементB; Данные.Button = Неопределено; Данные.Document = ЭлементА.document/ЭлементА.ownerDocument; Данные.Href = decodeURI(ЭлементА.Href). В режимах запуска "Толстый клиент" и "Тонкий клиент" свойства Anchor, Element, Button, Event и Document содержат значения типа COMОбъект. В режиме запуска "Веб-клиент" свойства Anchor, Element, Button, Event и Document содержат значения типа ВнешнийОбъект. На мобильной платформе свойства Anchor, Element, Button, Event, Document всегда Неопределено; Href – содержит адрес перехода. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Отказ от стандартной обработки не отменяет действие. Значение по умолчанию: Истина. Описание: Возникает при нажатии (клике мышью или с помощью клавиатуры) на любом элементе внутри окна ПоляHTMLДокумента. Примечание: На мобильной платформе возникает только при попытке перехода на другую страницу. -------------------------------------------------------------------------------- Методическая информация |
|||
33
Nuobu
08.08.16
✎
17:44
|
(32) Ух ты, спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |