LayaNative

LayaNative

layanative打包的android项目顺序加载js文件,可能有些js加载后未执行的问题

LayaAir Native打包哎呀嘛N号 发表了文章 • 0 个评论 • 223 次浏览 • 2025-09-30 09:43 • 来自相关话题

layanative发布的android项目,如果代码做了大量分包(比如各个功能模块-如:背包、技能,按需加载),在一次性加载大量js文件时,会出现某一些模块js代码加载完成后,未通过window.evalJS("加载的js文件中内容")执行的问题,导致这些功能模块出现问题
 
原因:
android项目中apploader.js文件,对js加载有个顺序处理方案,具体代码在Document.uploadScript中

uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
 
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}
if (this._loading == this._evalNum) {
this._loading = this._evalNum = 0;
this.scriptTextList.length = 0;
}
}

上面这段代码中,会有一个问题,如果window.downloadfile触发了下载失败的话,就会导致下载失败的那个文件始终在列表 scriptTextList中是空的,比如:下载0、 1、2、3、4、5这几个js文件,如果1下载失败,那么即使2、3、4、5全部加载完毕,回调_downloadOk方法时,_evalNum始终都是从1开始,在for循环中,scriptTextList[1] 始终都是null,这就导致2、3、4、5这几个js文件即使加载完成了,也无法执行 window.evalJS(js文件内容)。
 
处理方式:
在确保有这些js文件的前提下,把下载方法单独提出来,加载失败后,每隔500毫秒继续加载,直至加载完成

uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
this._downLoadFile(d, _t);
}
_downLoadFile(d, _t) {
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src + ", id:" + d.i);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
setTimeout(_t._downLoadFile, 500, d, _t);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}

 
按照上面这种改法,能确保所有js都正常加载,亲测有效 查看全部
layanative发布的android项目,如果代码做了大量分包(比如各个功能模块-如:背包、技能,按需加载),在一次性加载大量js文件时,会出现某一些模块js代码加载完成后,未通过window.evalJS("加载的js文件中内容")执行的问题,导致这些功能模块出现问题
 
原因:
android项目中apploader.js文件,对js加载有个顺序处理方案,具体代码在Document.uploadScript中


uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
 
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}
if (this._loading == this._evalNum) {
this._loading = this._evalNum = 0;
this.scriptTextList.length = 0;
}
}


上面这段代码中,会有一个问题,如果window.downloadfile触发了下载失败的话,就会导致下载失败的那个文件始终在列表 scriptTextList中是空的,比如:下载0、 1、2、3、4、5这几个js文件,如果1下载失败,那么即使2、3、4、5全部加载完毕,回调_downloadOk方法时,_evalNum始终都是从1开始,在for循环中,scriptTextList[1] 始终都是null,这就导致2、3、4、5这几个js文件即使加载完成了,也无法执行 window.evalJS(js文件内容)。
 
处理方式:
在确保有这些js文件的前提下,把下载方法单独提出来,加载失败后,每隔500毫秒继续加载,直至加载完成


uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
this._downLoadFile(d, _t);
}
_downLoadFile(d, _t) {
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src + ", id:" + d.i);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
setTimeout(_t._downLoadFile, 500, d, _t);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}


 
按照上面这种改法,能确保所有js都正常加载,亲测有效

[LayaNative3] 3.3.2包的layanative发布android后,输入文本在特定手机型号上输入文本后会照成闪退

BUG反馈layabox 回复了问题 • 已解决 • 3 人关注 • 2 个回复 • 698 次浏览 • 2025-09-28 17:10 • 来自相关话题

[LayaNative3] layanative是否可出文件异步读取和写入方法

其它综合交流layabox 回复了问题 • 2 人关注 • 1 个回复 • 625 次浏览 • 2025-09-28 10:42 • 来自相关话题

[LayaNative3] 3.2.8发布android项目不断切换清理资源后native内存一直涨

回复

LayaAir Native打包哎呀嘛N号 发起了问题 • 1 人关注 • 0 个回复 • 1287 次浏览 • 2025-09-24 15:47 • 来自相关话题

[LayaNative 2.0] dcc热更新,安装apk之后所有的执行文件都会去下载新的

LayaAir Native打包jianghello 回复了问题 • 2 人关注 • 1 个回复 • 3106 次浏览 • 2025-03-13 12:23 • 来自相关话题

[LayaAirIDE3] regClass,ClassUtils问题

LayaAir Native打包layabox 回复了问题 • 2 人关注 • 1 个回复 • 605 次浏览 • 2024-09-18 16:45 • 来自相关话题

[LayaAir3] 改写layadcc热更新流程是否可行?

回复

LayaAir Native打包好吃的饭团 发起了问题 • 1 人关注 • 0 个回复 • 697 次浏览 • 2024-08-05 14:47 • 来自相关话题

[LayaNative3] 新版DCC需求统计,技术方案收集

技术分享郭兆奎 回复了问题 • 7 人关注 • 5 个回复 • 1202 次浏览 • 2024-05-06 11:30 • 来自相关话题

layadcc有的文件更新不到。

LayaAir Native打包文先生 回复了问题 • 4 人关注 • 2 个回复 • 1689 次浏览 • 2024-03-25 10:09 • 来自相关话题

laya native打包出的安卓项目下,引擎会自己注册SensorManager,如何禁用

LayaAir Native打包lv 回复了问题 • 2 人关注 • 1 个回复 • 924 次浏览 • 2023-08-24 10:35 • 来自相关话题

当前版本LayaNative是否已经支持了WebP格式的图片?

LayaAir Native打包Yan 回复了问题 • 2 人关注 • 1 个回复 • 1361 次浏览 • 2022-06-29 19:28 • 来自相关话题

[LayaNative 2.0] LayaNative扫码提示,please connect chrome Debugger

LayaAir Native打包Evans_波 回复了问题 • 3 人关注 • 2 个回复 • 3555 次浏览 • 2022-05-12 11:50 • 来自相关话题

悬赏10元 小白求教,LayaRuntime-iOS文件夹如何导入导项目?

回复

LayaAir Native打包侯歌 回复了问题 • 1 人关注 • 1 个回复 • 1841 次浏览 • 2021-11-30 15:17 • 来自相关话题

js调用android的java代码失败。NoSuchMethodException

BUG反馈devx 回复了问题 • 2 人关注 • 2 个回复 • 4164 次浏览 • 2021-11-11 17:12 • 来自相关话题

iOS fatal error: 'string' file not found

LayaAir Native打包Laya_Fred 回复了问题 • 2 人关注 • 3 个回复 • 2342 次浏览 • 2021-10-29 15:08 • 来自相关话题

Ios wkwebview 下不响应任何操作 [IPC] Connection::waitForSyncReply

LayaAir Native打包lv 回复了问题 • 3 人关注 • 2 个回复 • 3060 次浏览 • 2021-08-02 17:57 • 来自相关话题

关于layadcc 文档没看懂的问题。

LayaAir Native打包1561084553用户 回复了问题 • 3 人关注 • 1 个回复 • 2454 次浏览 • 2021-07-23 11:51 • 来自相关话题

请问LayaNative安卓源码编译的时候需要的NDK版本是多少啊

回复

LayaAir Native打包S_Shine 回复了问题 • 0 人关注 • 1 个回复 • 2562 次浏览 • 2021-04-29 09:25 • 来自相关话题

[LayaNative 2.0] 怎么实现点击按钮退出app

LayaAir Native打包小小泽 回复了问题 • 2 人关注 • 1 个回复 • 2723 次浏览 • 2021-03-12 10:28 • 来自相关话题

[LayaNative 1.0] List中按钮点击触发异常

BUG反馈小小泽 回复了问题 • 2 人关注 • 1 个回复 • 5316 次浏览 • 2020-11-21 15:27 • 来自相关话题

条新动态, 点击查看
看来还是要自己领取悬赏了。
private static onRequestComplete(hr:Laya.HttpRequest, call:Laya.Handler):void
{
call.runWith(hr.data);
Http._request... 显示全部 »
看来还是要自己领取悬赏了。
private static onRequestComplete(hr:Laya.HttpRequest, call:Laya.Handler):void
{
call.runWith(hr.data);
Http._requests.push(hr);
}
问题已重新定位,属于laya拉起微信后的回到laya的卡死问题,至于为什么卡死,暂时没有解决
问题已重新定位,属于laya拉起微信后的回到laya的卡死问题,至于为什么卡死,暂时没有解决
问题已在3.3.2版本上修复,感谢反馈。今晚发版
问题已在3.3.2版本上修复,感谢反馈。今晚发版

[LayaNative3] 3.3.2包的layanative发布android后,输入文本在特定手机型号上输入文本后会照成闪退

回复

BUG反馈layabox 回复了问题 • 已解决 • 3 人关注 • 2 个回复 • 698 次浏览 • 2025-09-28 17:10 • 来自相关话题

[LayaNative3] layanative是否可出文件异步读取和写入方法

回复

其它综合交流layabox 回复了问题 • 2 人关注 • 1 个回复 • 625 次浏览 • 2025-09-28 10:42 • 来自相关话题

[LayaNative3] 3.2.8发布android项目不断切换清理资源后native内存一直涨

回复

LayaAir Native打包哎呀嘛N号 发起了问题 • 1 人关注 • 0 个回复 • 1287 次浏览 • 2025-09-24 15:47 • 来自相关话题

[LayaNative 2.0] dcc热更新,安装apk之后所有的执行文件都会去下载新的

回复

LayaAir Native打包jianghello 回复了问题 • 2 人关注 • 1 个回复 • 3106 次浏览 • 2025-03-13 12:23 • 来自相关话题

[LayaAirIDE3] regClass,ClassUtils问题

回复

LayaAir Native打包layabox 回复了问题 • 2 人关注 • 1 个回复 • 605 次浏览 • 2024-09-18 16:45 • 来自相关话题

[LayaAir3] 改写layadcc热更新流程是否可行?

回复

LayaAir Native打包好吃的饭团 发起了问题 • 1 人关注 • 0 个回复 • 697 次浏览 • 2024-08-05 14:47 • 来自相关话题

[LayaNative3] 新版DCC需求统计,技术方案收集

回复

技术分享郭兆奎 回复了问题 • 7 人关注 • 5 个回复 • 1202 次浏览 • 2024-05-06 11:30 • 来自相关话题

layadcc有的文件更新不到。

回复

LayaAir Native打包文先生 回复了问题 • 4 人关注 • 2 个回复 • 1689 次浏览 • 2024-03-25 10:09 • 来自相关话题

laya native打包出的安卓项目下,引擎会自己注册SensorManager,如何禁用

回复

LayaAir Native打包lv 回复了问题 • 2 人关注 • 1 个回复 • 924 次浏览 • 2023-08-24 10:35 • 来自相关话题

当前版本LayaNative是否已经支持了WebP格式的图片?

回复

LayaAir Native打包Yan 回复了问题 • 2 人关注 • 1 个回复 • 1361 次浏览 • 2022-06-29 19:28 • 来自相关话题

[LayaNative 2.0] LayaNative扫码提示,please connect chrome Debugger

回复

LayaAir Native打包Evans_波 回复了问题 • 3 人关注 • 2 个回复 • 3555 次浏览 • 2022-05-12 11:50 • 来自相关话题

悬赏10元 小白求教,LayaRuntime-iOS文件夹如何导入导项目?

回复

LayaAir Native打包侯歌 回复了问题 • 1 人关注 • 1 个回复 • 1841 次浏览 • 2021-11-30 15:17 • 来自相关话题

js调用android的java代码失败。NoSuchMethodException

回复

BUG反馈devx 回复了问题 • 2 人关注 • 2 个回复 • 4164 次浏览 • 2021-11-11 17:12 • 来自相关话题

iOS fatal error: 'string' file not found

回复

LayaAir Native打包Laya_Fred 回复了问题 • 2 人关注 • 3 个回复 • 2342 次浏览 • 2021-10-29 15:08 • 来自相关话题

Ios wkwebview 下不响应任何操作 [IPC] Connection::waitForSyncReply

回复

LayaAir Native打包lv 回复了问题 • 3 人关注 • 2 个回复 • 3060 次浏览 • 2021-08-02 17:57 • 来自相关话题

关于layadcc 文档没看懂的问题。

回复

LayaAir Native打包1561084553用户 回复了问题 • 3 人关注 • 1 个回复 • 2454 次浏览 • 2021-07-23 11:51 • 来自相关话题

请问LayaNative安卓源码编译的时候需要的NDK版本是多少啊

回复

LayaAir Native打包S_Shine 回复了问题 • 0 人关注 • 1 个回复 • 2562 次浏览 • 2021-04-29 09:25 • 来自相关话题

[LayaNative 2.0] 怎么实现点击按钮退出app

回复

LayaAir Native打包小小泽 回复了问题 • 2 人关注 • 1 个回复 • 2723 次浏览 • 2021-03-12 10:28 • 来自相关话题

[LayaNative 1.0] List中按钮点击触发异常

回复

BUG反馈小小泽 回复了问题 • 2 人关注 • 1 个回复 • 5316 次浏览 • 2020-11-21 15:27 • 来自相关话题

[LayaAir 2.0] 在android studio上运行ConchJNI.RunJS("JaveCallback.onHide()"),提示JaveCallback is not defined

回复

LayaAir Native打包闫小米R 回复了问题 • 3 人关注 • 1 个回复 • 3346 次浏览 • 2020-10-15 18:05 • 来自相关话题

layanative打包的android项目顺序加载js文件,可能有些js加载后未执行的问题

LayaAir Native打包哎呀嘛N号 发表了文章 • 0 个评论 • 223 次浏览 • 2025-09-30 09:43 • 来自相关话题

layanative发布的android项目,如果代码做了大量分包(比如各个功能模块-如:背包、技能,按需加载),在一次性加载大量js文件时,会出现某一些模块js代码加载完成后,未通过window.evalJS("加载的js文件中内容")执行的问题,导致这些功能模块出现问题
 
原因:
android项目中apploader.js文件,对js加载有个顺序处理方案,具体代码在Document.uploadScript中

uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
 
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}
if (this._loading == this._evalNum) {
this._loading = this._evalNum = 0;
this.scriptTextList.length = 0;
}
}

上面这段代码中,会有一个问题,如果window.downloadfile触发了下载失败的话,就会导致下载失败的那个文件始终在列表 scriptTextList中是空的,比如:下载0、 1、2、3、4、5这几个js文件,如果1下载失败,那么即使2、3、4、5全部加载完毕,回调_downloadOk方法时,_evalNum始终都是从1开始,在for循环中,scriptTextList[1] 始终都是null,这就导致2、3、4、5这几个js文件即使加载完成了,也无法执行 window.evalJS(js文件内容)。
 
处理方式:
在确保有这些js文件的前提下,把下载方法单独提出来,加载失败后,每隔500毫秒继续加载,直至加载完成

uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
this._downLoadFile(d, _t);
}
_downLoadFile(d, _t) {
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src + ", id:" + d.i);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
setTimeout(_t._downLoadFile, 500, d, _t);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}

 
按照上面这种改法,能确保所有js都正常加载,亲测有效 查看全部
layanative发布的android项目,如果代码做了大量分包(比如各个功能模块-如:背包、技能,按需加载),在一次性加载大量js文件时,会出现某一些模块js代码加载完成后,未通过window.evalJS("加载的js文件中内容")执行的问题,导致这些功能模块出现问题
 
原因:
android项目中apploader.js文件,对js加载有个顺序处理方案,具体代码在Document.uploadScript中


uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
 
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}
if (this._loading == this._evalNum) {
this._loading = this._evalNum = 0;
this.scriptTextList.length = 0;
}
}


上面这段代码中,会有一个问题,如果window.downloadfile触发了下载失败的话,就会导致下载失败的那个文件始终在列表 scriptTextList中是空的,比如:下载0、 1、2、3、4、5这几个js文件,如果1下载失败,那么即使2、3、4、5全部加载完毕,回调_downloadOk方法时,_evalNum始终都是从1开始,在for循环中,scriptTextList[1] 始终都是null,这就导致2、3、4、5这几个js文件即使加载完成了,也无法执行 window.evalJS(js文件内容)。
 
处理方式:
在确保有这些js文件的前提下,把下载方法单独提出来,加载失败后,每隔500毫秒继续加载,直至加载完成


uploadScript(d) {
var _t = this;
d.i = this._loading;
this._loading++;
this._downLoadFile(d, _t);
}
_downLoadFile(d, _t) {
if (d.src) {
console.log("_downloadAysn:temp.src" + d.src + ", id:" + d.i);
window.downloadfile(d.src, false, function (data) {
d._stext = data + "\n//@ sourceURL=" + d.src;
_t._downloadOk(d);
}, function () {
var e = new Event("error");
e.target = e.currentTarget = d.obj;
d.obj.onerror && d.obj.onerror(e);
setTimeout(_t._downLoadFile, 500, d, _t);
});
}
else {
d._stext = d.text;
_t._downloadOk(d);
}
}
_downloadOk(d) {
this.scriptTextList[d.i] = d;
for (var i = this._evalNum, len = this.scriptTextList.length; i < len; i++) {
var t = this.scriptTextList[i];
if (!t)
return;
console.log(">>>>>>>>>>>>>>>eval src=" + t.src);
var t1 = Date.now();
window.document["currentScript"] = t.src;
window.evalJS(t._stext);
console.log(">>>>>>>>>>>>>>>>>eval take time:" + (Date.now() - t1));
var e = new Event("load");
e.target = e.currentTarget = t.obj;
t.obj.onload && t.obj.onload(e);
this._evalNum++;
}


 
按照上面这种改法,能确保所有js都正常加载,亲测有效
商务合作
商务合作