
И изменился сам процесс загрузки:
- Ранее индикатор двигался более-менее равномерно;
- Теперь он быстро пробегает и подвисает в конце.
(напоминает запись под Logout / Commit)
Модератор: Дед Пахом
Это зависит от структуры json. Колбэк вызывается на выходе из каждого объекта {} или массива []. Если у Вас последний (или близко к концу) объект содержит длинные строки или очень много строк/чисел, то это может казаться подвисанием.
Это иное. Если мы перебираем заголовки файлов в папке - то конечно можно повесть индикатор по кол-ву файлов.
Именно так и есть ! В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.Дед Пахом писал(а): 03 Январь 2023, 15:28 Если у Вас последний (или близко к концу) объект содержит длинные строки
Обновил cjson.clw, теперь колбэк вызывается и для длинных строк. Номер версии не менял.Игорь Столяров писал(а): 03 Январь 2023, 15:33 В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.
Извращенцы...Игорь Столяров писал(а): 03 Январь 2023, 15:33Именно так и есть ! В хвосте JSON список товаров с фотками образцов и сертификатами в PDF.Дед Пахом писал(а): 03 Январь 2023, 15:28 Если у Вас последний (или близко к концу) объект содержит длинные строки![]()
Зависит от цели действия. Если показать в броузере - то удобней картинку.
Код: Выделить всё
jsonFactory Class(cJSONFactory)
ParseCallback Procedure(Long pInputLength, Long pCurrentPos, Long pCurrentDepth), Derived
end
curPercent Long, Auto, Static
Code
curPercent = 0
Root &= jsonFactory.ParseFile(sFileName1 ...)
If Not (Root &= Null) ...
...
curPercent = 0
Root &= jsonFactory.ParseFile(sFileName2 ...)
If Not (Root &= Null) ...
...
jsonFactory.ParseCallback Procedure(Long pInputLength, Long pCurrentPos, Long pCurrentDepth)
newPercent Long, Auto
Code
newPercent = (pCurrentPos / pInputLength * 100)
If newPercent > curPercent
curPercent = newPercent
printd('ParseCallback(%i, %i, %i): progress %i%%', pInputLength, pCurrentPos, pCurrentDepth, curPercent)
end
В новый год - с оптимизмом !