Appcelerator - exécuter la fonction en arrière-plan?
-
26-09-2019 - |
Question
Presque fait ma première application de développeur de titane cependant, le plus gros problème (et le manque de documentation) est la capacité d'exécuter une fonction en arrière-plan.
J'ai une fonction qui fondamentalement juste un fichier requêtes JSON externe et des boucles puis au travers d'insérer sur les 150 enregistrements dans la base de données. Cela se bloque complètement l'application jusqu'à ce qu'il soit fait.
J'ai essayé un plugin boucle async jquery et il fonctionne bien que le reste de l'application est encore très lent / répondre à toutes les commandes.
Il doit être possible d'exécuter une fonction dans un thread d'arrière-plan ou quelque chose tandis que le reste de l'application est entièrement accessible.
Quelqu'un sait comment faire cela?
La solution
il suffit de mettre votre code dans un setTimeout:
setTimeout(function (){
/* your code */
},0);
Le comportement est comme un fil.
Autres conseils
Je pense que depuis un certain temps puisque vous avez demandé, mais j'eu le même problème aujourd'hui et je résolus en utilisant le code de: fonction d'arrière-plan Acppcelerator
Une solution ici indique la fonctionnalité spécifique sera disponible dans une version ultérieure
Une autre solution est de créer un événement et le feu hors tension depuis les fenêtres / vues exécuter sur un thread séparé, faites défiler jusqu'à la section Événements sur cette
// fire the event for the task
Ti.App.fireEvent("doLongTask");
Ti.App.addEventListener("doLongTask", function () {
// doing long task...
});