Novel Stuck at 100% Completion
-
Hi, I'm trying to read the first part of the first volume of My Little Sister Can Read Kanji. I was able to read it this morning and was around 50% through the chapter. When I tried to load it on a different PC later in the day it loaded only the pages for 0% and 100% complete and I was unable to return to where I was. I've gone back to my original PC but now the chapter is only loading in at 100% complete and I'm unable to go back to where I was in the chapter to finish it. Is there something I need to do that I'm missing or is this a bug?
-
@raddevlin
I've had this happen to me too.There's probably a bug somewhere to be squashed, but some workarounds in the meantime:
- in the case of the first part, a way to re-read it is to log off (or open another browser) to read it as a guest.
- When reading any part that's not the first, go to the end of the previous part and click "next part," which should bring you to 0% properly on the following chapter you were stuck at 100% on (at least that works for me).
-
@hatguy12 Thanks - logging out let me read the chapter. :)
-
It's getting to the point where I either have to do the trick twice, or use the app to change where I am in the chapter. Any updates on this @Sam-Pinansky?
-
@erictbar Can you open up a javascript console (like developer's console) and see if there are any errors being shown?
I have a hard time reproducing this reliably.
-
@Sam-Pinansky Ok found a part of Arifueta that wasn't on 100% and was able to replicate the error. I am currently running Safari Technology Preview Release 33 (Safari 11.0, WebKit 12604.1.25.0.2) though this issue has occurred before I started to use the preview.
TypeError: null is not an object (evaluating 't.page.scrollWidth')
On line 2527 of 'https://j-novel.club/21.partreader.d98461e9916e2c6d1f65.js
Full sized images:
https://flic.kr/p/VLVvWW
https://flic.kr/p/VLVw51(Side note: What are the kids using to upload images to forums these days?)
-
@erictbar Ah, okay, I think I might have a clue where this is coming from...
setTotalPages (element) { this.page = element if (element) { setTimeout(() => { window.matchMedia('(min-width: 599px)').matches ? this.props.setTotalPages(Math.floor((this.page.scrollWidth + 30) / 460) + 1) : this.props.setTotalPages(Math.floor((this.page.scrollWidth + 30) / (document.documentElement.clientWidth + 10)) + 1) }, 1000) } }
I'm pretty sure the problem is with this hacky function. The whole issue is that in order to get the total page number I need to use the scroll width of the rendered columnated part. But the browser doesn't seem to want to give me that number right away, so I put in a manual 1 second delay before asking for it.
I bet that your system is too slow and it is taking more than 1 second to download and display the part text, which is why when this executes it errors out. When it errors out, it doesn't retry.Let me try and think of another more robust way to deal with the delay before I can access scrollWidth and calculate the total pages, or maybe a workaround where it just sets the page total the first time you scroll to the next page or something.
-
@erictbar Try the web reader now. I pretty much completely changed how the "delay" in getting the total page count works by adding a new state counter so it will force itself to recheck every second until the browser fills in the scrollWidth data and should no longer crash the page.
I think this should solve the problem.
-
New behavior seems to be that any part where I reached 100% now returns to 0% when the part is opened again.
A part where I stopped in the middle and closed the window now returns me to the X% I stopped at, and I can navigate in both directions from that point, unlike before where > ~50% would cause it to lock at the finished part screen the same as 100%.
So it is likely working as intended (for me) now.
-
@Sam-Pinansky I left the page open overnight. Refreshing it would cause the problem to continue. Just refreshed it again and it's working.
-
@hatguy12 Yeah, my first attempt at a solution was to add that in... Whenever you stop with 95% or more to go, it doesn't resume the next time.
I figure that's the more useful behavior for people.