2017-08-25 3 views
0

Dans mon application tvOS, avant l'affichage d'un modèle, un loadingtemplate arrive.
Mais: Il est seulement vu comme .50 secondes, puisque je le repousse immédiatement avec les modèles principaux. Comment puis-je retarder cela, de sorte qu'il montre 2-3 secondes, puis continuez à pousser mon modèle principal réel sur l'écran.Délai de chargement intentionnel (setTimeout?)

function loadingTemplate() { 
    var loadingDoc = "<document> ... </document>"; 
    //parsing it as an xml 
    var parser = new DOMParser(); 
    var parsedTemplate = parser.parseFromString(loadingDoc, "application/xml"); 
    return parsedTemplate; 
} 

D'autres fonctions seront désormais appeler comme ça au début:

var loadingDocument = loadingTemplate(); 
navigationDocument.pushDocument(loadingDocument); 

Ensuite, le code suit et les principaux documents sont repoussait la loadingDocument.

J'ai essayé de faire quelque chose comme ceci:

setTimeout(function() { navigationDocument.pushDocument(loadingDocument);}, 9000); 

mais ne peut pas vraiment le faire fonctionner. Quelqu'un a une idée? Editer: J'ai essayé de pousser le document de chargement à l'écran, puis de retarder setTimeout sur le code entier suivant. Ne fonctionne pas tho comment je l'ai fait:/

+0

Ce que vous dites est: « Je veux ruiner l'expérience utilisateur en montrant chargeur pendant 3 secondes, même si la page a chargé en peu de temps, parce que je peux. ". Trois secondes, c'est assez long temps d'attente de nos jours. Si j'étais toi je mettrais en application le mécanisme qui montre le modèle de chargeur seulement quand le modèle de rendu prend plus longtemps qu'une certaine quantité de temps (par exemple 500ms, selon votre cas). –

+0

Oui, j'ai réalisé, 3 secondes est assez longue. La chose est, je veux seulement l'avoir au début de l'application. Et ce n'est pas comme: loading (+ spinner), mais le nom de l'application et quelques informations. – randomcat

Répondre

0

Cela vous retardera modèle par défaut avec 2 s:

clearTimeout(window.resizedFinished); 
    window.resizedFinished = setTimeout(function() { 
     /* default template */ 
    }, 2000);