使用 $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 时没有

使用google可视化api时,使用dashboard时如何使用getChartLayoutInterface()

使用PUTTY+xming时出错