we're tryng to switch advert rendering over to postscribe but we're struggling with an issue. Having multiple ads on the website, where most of them are async, means it takes a long time to render them one by one by one. We tries using the releaseAsync option because it can speed it up a LOT.
However, there is an ad out there that is incompatible with the current implementation of postscribe, it looks like this:
Notice that there is a document write for async script. I know, this is stupid, but this is real world example.
Using releaseAsync to speed up rendering, postscribe fails in this case, because it releases on the inner async script when it is not the one on top of the stack. Adding it to test suit in karma and logging tok and stack inside _onScriptDone:
This demonstrates that the inner script is considered DONE when it is not on top of the stack, only the outer script is there.
The stack call is 1) start outer 2) done inner 3) throw error 4) start inner.
The problem for me is also that the test case itself does not fail, because afterAsync IS called, so expect(1) gets called. It only breaks postscribe for the next ad.
Hi,
we're tryng to switch advert rendering over to postscribe but we're struggling with an issue. Having multiple ads on the website, where most of them are async, means it takes a long time to render them one by one by one. We tries using the releaseAsync option because it can speed it up a LOT.
However, there is an ad out there that is incompatible with the current implementation of postscribe, it looks like this:
<script> document.write("<scr"+"ipt async src='remote/describe-write.js'></scr"+"ipt>"); </script>
Notice that there is a document write for async script. I know, this is stupid, but this is real world example.
Using releaseAsync to speed up rendering, postscribe fails in this case, because it releases on the inner async script when it is not the one on top of the stack. Adding it to test suit in karma and logging tok and stack inside _onScriptDone:
current TOK:
stack:
This demonstrates that the inner script is considered DONE when it is not on top of the stack, only the outer script is there.
The stack call is 1) start outer 2) done inner 3) throw error 4) start inner.
The problem for me is also that the test case itself does not fail, because afterAsync IS called, so expect(1) gets called. It only breaks postscribe for the next ad.