Cordova文件阅读器阻塞javascript代码的执行
cordova filereader blocks execution of javascript code
我正在构建cordova + angularjs应用程序(借助typescript和ng-cordova)。
我有一个cordova fileReader函数的问题,假设是异步的,但在我的情况下,它阻止了其他javascript代码的执行,包括执行ng-click指令。当cordova读取一个10mb大小的图书索引时,所有UI组件都没有响应。
loadIndexFromBookFolder(bookFolder: string): ng.IPromise<ft.ILoadIndex> {
var currentClass: SearchService = this;
var deferred = this.$q.defer<ft.ILoadIndex>();
this.$cordovaFile.readFile(bookFolder + '/index').then(function (idx) {
currentClass.$cordovaFile.readFile(bookFolder + '/idMap').then(function (idMap) {
deferred.resolve({ index: lunr.Index.load(JSON.parse(idx)), idMap: JSON.parse(idMap) });
}, failed);
}, failed);
var failed = (err) => {
this.$log.debug('error: ' + err);
deferred.reject();
};
return deferred.promise;
}
如果cordova filereader是异步的,那么还有什么可以导致阻塞java脚本这样的问题?
我有一个类似的问题使用cordova和angular (Ionic 2),也许这可以帮助你:
尝试改变cordova.js和polyfill.js脚本的加载顺序,在我的情况下,在cordova脚本之前加载"polyfill.js"脚本完全解决了这个问题。
这里是我找到这个解决方案的地方,关于这个问题的更多信息你可以在这里找到。
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- JavaScript代码问题:我正在将对象转换为数组
- Javascript阻止其他Javascript代码
- JavaScript代码未正确检查ajax请求
- 如何调试Javascript代码或函数
- 为什么我在这个javaScript代码中使用NaN
- 将javascript代码转换为jquery代码时出错
- 如何从Objective-C代码中调用javascript代码
- 有什么工具可以轻松读取javascript代码吗
- 这个javascript代码是如何编写的
- 如何解密此javascript代码
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- HTML标记,包含带引号的JavaScript代码中的引号
- 如何在Win8Metro应用程序的Javascript代码中捕获自己的C#事件
- addEventListener的Javascript代码不工作!?(单击时打开放大的img)
- JavaScript代码无法在表单上呈现部分
- 以下 JavaScript 代码与 Facebook 相关
- 使用解析为javascript源的.php,如何使用条件语句将javascript代码封装在php括号之间