Vraag Knockout 'flikkerend' probleem


Ik gebruik een SPA (Single Page Application) met KO. de applicatie ziet eruit als een boek en de gebruiker kan pagina's omdraaien.

Het probleem is dat elke keer dat een pagina wordt geladen, er een kort moment is waarop de pagina 'flikkert' en de gebruiker de niet-gestileerde versie van de pagina ziet. Ik vermoed dat dit veroorzaakt wordt door het feit dat veel van de styling afhankelijk is van ko bindingen, dus totdat ko het 'magisch' af maakt, krijgt de gebruiker een glimp van de niet-gestileerde code.

Is het mogelijk om te vertellen wanneer KO alle bindingen heeft voltooid en pas dan de pagina te laten zien?

Ik heb het voor een deel opgelost door een time-out in te stellen voordat ik de weergave laad, maar dit is natuurlijk geen goede oplossing.


31
2018-01-29 12:34


oorsprong


antwoorden:


Ja, het is eigenlijk heel gemakkelijk. Van toepassing zijn display:none naar het hoogste niveau div (of w / e container), en data-bind="visible: true". Dit zorgt ervoor dat de pagina wordt verborgen totdat knock-out deze zichtbaar maakt via binding (wat uiteraard niet kan gebeuren totdat de pagina volledig is geladen).

Omdat je een niet-waarneembare waarde gebruikt, zal Knockout niet eens de moeite nemen om dit opnieuw te controleren. Na de eerste binding mag er geen sprake zijn van prestatieproblemen.


54
2018-01-29 17:30



Ik denk dat dit eerder beter werd beantwoord met behulp van sjablonen.

Wat is de beste manier om het scherm te verbergen terwijl knock-out js-bindingen worden gebouwd?


4
2017-11-01 19:27