1、Web端的动态加载.js库和静态加载.js库:
①动态加载:script标签加载
在主线程:
// 加载视频渲染js文件
if (!bSuperRenderLoad) {
bSuperRenderLoad = true;
var script_vedio = document.createElement("script");
script_vedio.type = "text/javascript";
script_vedio.src = that.szBasePath + "SuperRender.js";
var head_vedio = document.getElementsByTagName('head')[0];
head_vedio.appendChild(script_vedio);
script_vedio.onload = script_vedio.onreadystatechange = function () {
if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete')
{
if (bJSPrintLog)
{
console.log(">>>JS SuperRender.js load finish!");
}
}
};
在webworker线程
importScripts("helper.js");
②静态加载:编译时就加载
加载方法一:import { } from **.js (ES6)
此时会将.js打包打包进.min.js中。
import {jsplayctrl} frome './h5player.js'
加载方法二:require (CommonJS/nodejs)
// test.js
function test(){
console.log(test);
}
module.exports.test = test;
// result.js
const test = require("./test")
当.js文件不一定需要时,使用动态加载。
若一定需要,则使用静态加载。
2、WebAssembly端的静态库和动态库
底层依赖库一般都是静态库(.a)
最终生成的库(.so、.dll、.wasm)一般是动态库(emar生成静态库,emcc -o生成动态库);