2017-08-25 5 views
0

In meiner tvOS App, bevor eine Vorlage angezeigt wird, wird eine Ladevorlage angezeigt.
Aber: Es wird nur für wie .50 Sekunden gesehen, da ich es sofort mit den Hauptvorlagen wegschiebe. Wie kann ich das verzögern, so dass es für 2-3 Sekunden zeigt, und dann fahren Sie fort, meine eigentliche Hauptvorlage auf dem Bildschirm zu schieben.Absichtlich Verzögerung beim Laden des Bildschirms (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; 
} 

Weitere Funktionen werden nun es so ganz am Anfang nennen:

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

Dann wird der Code folgt und die wichtigsten Dokumente, die die loadingDocument weg drängen.

Ich habe versucht, so etwas zu tun:

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

Aber kann es nicht wirklich Arbeit kommen. Jemand eine Idee?

Bearbeiten: Versucht, das Ladedokument auf dem Bildschirm zu schieben, und dann verzögert die setTimeout auf den folgenden ganzen Code. Ein Problem tho, wie ich es tat:/

+0

Was Sie sagen, ist: „Ich will von User Experience ruinieren 3 Sekunden zeigt Lader auch wenn Seite hat in kürzester Zeit geladen, weil ich kann. ". Drei Sekunden sind heutzutage ziemlich lange Wartezeit. Wenn ich Sie wäre, würde ich einen Mechanismus implementieren, der die Loader-Vorlage nur dann anzeigt, wenn das Rendern einer Vorlage länger dauert als eine kleine Zeitspanne (z. B. 500 ms, je nach Fall). –

+0

Ja, ich erkannte, 3 Sekunden sind ziemlich lang. Die Sache ist, ich möchte es nur am Anfang der App haben. Und es sagt nicht wie: Laden (+ Spinner), aber der Name der App und einige Informationen. – randomcat

Antwort

0

Dies wird Ihnen Vorlage mit 2s Standardverzögerung:

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