require 动态加载_Javascript 5种动态库

要解决的问题复用其他人的工作减少 executable 的体积不共享源代码的前提下复用解决方案exectuable不会携带所有的算法实现。它会构建在executor提供的builtin api的基础上。同时也会利用第三方的 dynamic library 依赖 executor 的 dynamic linker 动态链接进来使用。这个动态链接其他人的工作的机制在很多种机器中都有提供。构成execu...
摘要由CSDN通过智能技术生成

要解决的问题

  • 复用其他人的工作
  • 减少 executable 的体积
  • 不共享源代码的前提下复用

解决方案

exectuable不会携带所有的算法实现。它会构建在executor提供的builtin api的基础上。同时也会利用第三方的 dynamic library 依赖 executor 的 dynamic linker 动态链接进来使用。这个动态链接其他人的工作的机制在很多种机器中都有提供。

构成

  • executable:动态链接发起的源头,executor第一个加载的东西
  • dynamic library:提供被复用的算法,动态链接库
  • dynamic library linker:一般是executor的一个组件,提供动态链接的能力。也可能是第三方利用executor的 api 独立实现的linker。

解决方案案例

JavaScript 主流的动态链接库有以下几种,各自使用的linker是不同的

f5ce235a75ae202947edbac20201de38.png

传统浏览器

  • executable:直接嵌入到 html 的 <script> 标签的 JavaScript 代码
  • dynamic library:由 html 文件的 <script src="xxx"> 引用的 .js 文件
  • dynamic linker:浏览器自身,通过全局变量实现彼此的互通。script标签的顺序决定了加载顺序,后被加载的js可以引用前面js定义的全局变量。
// http://localhost/library.js
function call_library() { 
  console.log('i am the library')
}
// http://localhost/index.html
<html>
<head>
<script src="./library.js"></script>
<script>
console.log('i am the executable')
call_library() // window.call_library()
</script>
</head>
<body>
</body>
</html>

executable 和 d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值