И изменился сам процесс загрузки:
- Ранее индикатор двигался более-менее равномерно;
- Теперь он быстро пробегает и подвисает в конце.
(напоминает запись под 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
В новый год - с оптимизмом !