几乎完成了我的第一个钛开发应用程序,但最大的问题(以及缺乏文档)是在后台执行功能的能力。
我有一个函数,它基本上只是查询一个外部 json 文件,然后循环遍历它,在数据库中插入大约 150 条记录。这会完全挂起应用程序,直到它完成。
我尝试了一个 jquery 异步循环插件,尽管应用程序的其余部分仍然非常慢/响应任何命令,但它仍然有效。
必须可以在后台线程或其他东西中执行一个函数,而应用程序的其余部分是完全可访问的。
有人知道怎么做吗?
几乎完成了我的第一个钛开发应用程序,但最大的问题(以及缺乏文档)是在后台执行功能的能力。
我有一个函数,它基本上只是查询一个外部 json 文件,然后循环遍历它,在数据库中插入大约 150 条记录。这会完全挂起应用程序,直到它完成。
我尝试了一个 jquery 异步循环插件,尽管应用程序的其余部分仍然非常慢/响应任何命令,但它仍然有效。
必须可以在后台线程或其他东西中执行一个函数,而应用程序的其余部分是完全可访问的。
有人知道怎么做吗?
此处的一种解决方案表明特定功能将在以后的版本中提供
http://developer.appcelerator.com/question/68231/background-thread--timer-thread--service-thread
另一个解决方案是创建一个事件并触发它,因为窗口/视图在单独的线程上执行,向下滚动到此页面上的事件部分
// fire the event for the task
Ti.App.fireEvent("doLongTask");
Ti.App.addEventListener("doLongTask", function () {
// doing long task...
});
只需将您的代码放在 setTimeout 中:
setTimeout(function (){
/* your code */
},0);
行为就像一个线程。
我想你问这个问题已经有一段时间了,但我今天遇到了同样的问题,我使用以下代码解决了问题:Background function Acppcelerator