睿小狼
睿小狼
  • 发布:2015-10-23 11:02
  • 更新:2015-10-27 17:30
  • 阅读:1560

readAsText效率太低,在所有安卓上均有体现,iOS只需要几百毫秒的东西在安卓上要几十秒.

分类:HTML5+
IO

readAsText效率太低,在所有安卓上均有体现,iOS只需要几百毫秒的东西在安卓上要几十秒.

附上测试代码:
mui.plusReady(function() {
console.log('start');
var t1 = new Date().getTime();
plus.io.resolveLocalFileSystemURL('_www/titles.json', function(entry) {
entry.file(function(file) {
var fileReader = new plus.io.FileReader();
fileReader.readAsText(file, 'utf-8');
fileReader.onloadend = function(evt) {
var t2 = new Date().getTime();
var d = t2 - t1;
console.log('success' + d);
}
});
}, function(e) {
var t2 = new Date().getTime();
var d = t2 - t1;
console.log('error' + d);
});
});

2015-10-23 11:02 负责人:无 分享
已邀请:
睿小狼

睿小狼 (作者)

已经解决了,用NativeJS重写了一个读取方法;
安卓版H5+里提供的读取方法存在效率问题,请官方确认.

  • Android_磊子

    不知同学如何实现的,可以分享出来吗?

    2015-10-27 20:27

  • 睿小狼 (作者)

    回复 Android_磊子:var BufferedReader = plus.android.importClass("java.io.BufferedReader");

    var File = plus.android.importClass("java.io.File");

    var FileInputStream = plus.android.importClass("java.io.FileInputStream");

    var InputStreamReader = plus.android.importClass("java.io.InputStreamReader");


        var jsonFile = new File(plus.io.convertLocalFileSystemURL(url));  
    var _in = new FileInputStream(jsonFile);
    var inputStreamReader = new InputStreamReader(_in,"UTF-8");
    var buffer = new BufferedReader(inputStreamReader);
    var _json = buffer.readLine().toString();

    2015-12-09 14:44

  • 陈浩

    回复 Android_磊子:解决这个问题了没有啊?

    2016-07-14 09:14

  • Android_磊子

    你是如何测试有效率低的问题的?5+api侧重的是通用性,返回的数据需要有一定的格式要求,不是简单的读取文件内容。如果你对此比较看重,可以尝试njs实现方式。

    2016-07-14 17:06

该问题目前已经被锁定, 无法添加新回复