使用 $localForage.setItem 时,应用程序会冻结几秒钟
Posted
技术标签:
【中文标题】使用 $localForage.setItem 时,应用程序会冻结几秒钟【英文标题】:when using $localForage.setItem the App freeze for few seconds 【发布时间】:2015-04-05 22:17:59 【问题描述】:我正在使用 $localForage.setItem 在 ionic 移动应用中本地存储数据。数据约为 7MB,使用 setItem 时应用会冻结几秒钟。
有什么解决方法的建议吗?
【问题讨论】:
【参考方案1】:您可以利用 Promises 让应用程序在获取数据时继续运行。
localforage.getItem("sellerName").then(function(sellerName)
// .... Any code that DEPENDS ON THIS DATA goes here.
// THIS code will have a pause prefacing it, but code
// outside of this funtion will continue to process.
);
希望对您有所帮助!如果您的数据依赖于正在检索的数据,您可能需要尽快检索(例如缓存它)或暂时在屏幕上放置一个加载器图像。祝你好运!
附录:你可以试试这个,我用它来获取“大数据”并获取多个大数据结果......
var getLogs = $.ajax( type: 'GET', url: 'testget.php?more=1' );
$('#results').html('Loading...');
$.when(getLogs).then( function(getLogs)
$('#results').html(getLogs);
, handleError);
function handleError(xhr, status, error)
console.log("There was an Error: " + error.toString());
这应该可以解决您的问题。 ^5
【讨论】:
关于设置项目的问题,即使使用承诺回调,我也遇到了类似的问题。以上是关于使用 $localForage.setItem 时,应用程序会冻结几秒钟的主要内容,如果未能解决你的问题,请参考以下文章
使用 php artisan migrate 时,迁移时更改表名,使用 tinker 保存对象时出错
使用前台服务时允许“使用应用程序时”而不是“始终允许”是不是可以?
使用自定义效果时缺少网格颜色,但使用 BasicEffect 时没有