perf(parser): only show progress bar for chapters >= 50KB
- Fix progress check logic: use lastProgress/10 != progress/10 to catch any 10% boundary crossing instead of requiring exact 10% match - Only show progress bar for chapters >= 50KB where rendering overhead is worth the visual feedback
This commit is contained in:
parent
802842e6f2
commit
f41e7496ad
@ -11,6 +11,9 @@
|
|||||||
const char* HEADER_TAGS[] = {"h1", "h2", "h3", "h4", "h5", "h6"};
|
const char* HEADER_TAGS[] = {"h1", "h2", "h3", "h4", "h5", "h6"};
|
||||||
constexpr int NUM_HEADER_TAGS = sizeof(HEADER_TAGS) / sizeof(HEADER_TAGS[0]);
|
constexpr int NUM_HEADER_TAGS = sizeof(HEADER_TAGS) / sizeof(HEADER_TAGS[0]);
|
||||||
|
|
||||||
|
// Minimum file size (in bytes) to show progress bar - smaller chapters don't benefit from it
|
||||||
|
constexpr size_t MIN_SIZE_FOR_PROGRESS = 50 * 1024; // 50KB
|
||||||
|
|
||||||
const char* BLOCK_TAGS[] = {"p", "li", "div", "br", "blockquote"};
|
const char* BLOCK_TAGS[] = {"p", "li", "div", "br", "blockquote"};
|
||||||
constexpr int NUM_BLOCK_TAGS = sizeof(BLOCK_TAGS) / sizeof(BLOCK_TAGS[0]);
|
constexpr int NUM_BLOCK_TAGS = sizeof(BLOCK_TAGS) / sizeof(BLOCK_TAGS[0]);
|
||||||
|
|
||||||
@ -255,10 +258,11 @@ bool ChapterHtmlSlimParser::parseAndBuildPages() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update progress (call every 10% change to avoid too frequent updates)
|
// Update progress (call every 10% change to avoid too frequent updates)
|
||||||
|
// Only show progress for larger chapters where rendering overhead is worth it
|
||||||
bytesRead += len;
|
bytesRead += len;
|
||||||
if (progressFn && totalSize > 0) {
|
if (progressFn && totalSize >= MIN_SIZE_FOR_PROGRESS) {
|
||||||
const int progress = static_cast<int>((bytesRead * 100) / totalSize);
|
const int progress = static_cast<int>((bytesRead * 100) / totalSize);
|
||||||
if (progress != lastProgress && progress % 10 == 0) {
|
if (lastProgress / 10 != progress / 10) {
|
||||||
lastProgress = progress;
|
lastProgress = progress;
|
||||||
progressFn(progress);
|
progressFn(progress);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user