webpack bundle中parentJsonpFunction的作用
parentJsonpFunction作用:使异步加载的模块在多个不同的bundle内同步。
假设有多入口文件

bundle1.js:

bundl2.js:

在webpack打包后

加载流程:
1.bundle1: webpack_require__.e.. ---> 生成【script】
2.bundle2: webpack_require__.e.. ---> 生成【script】
3.进入到0.js内部了,现在在执行bundle1生成的script标签,此时执行的是window.webpackJsonp.push(执行的是bundle2的webpackjsonpcallback方法..) 将模块加载到bundle2中
4.通过parentJsonpFunction进入到了bundle1中,将这个模块也加载到bundle1中,再通过parentJsonpFunction将data挂载到了window.webpackJsonp数组下
5.调用bundle1的webpack_require__.e的.then了
(resolve(webpack_require__(./show.js).bind(…)).then.. webpackrequire的时候可以加载到这个已经加载到modules里面的module了
6.调用bundle2的.then了 (resolve(webpack_require__(./show.js).bind(…)).then.. webpack
webpackrequire的时候可以加载到这个已经加载到modules里面的module了,(因为刚才的过程中已经加载了,所以这里可以直接加载)
7.执行bundle1的.then 执行bundle2的.then 输出bundle1最终的内容 输出bundle2最终的内容
8.进入到0.js内部了,这是因为创建的第二个script标签加载了
执行window.webpackJsonp.push… (这个是bundle2的webpackjsonpcallback) 重新加载了bundle2的module,然后执行到parentJsonpFunction,重新加载了一下bundle1的module,再执行到parentJsonpFunction 最终在window的webpackjsonp数组里又push入一条内容 (注意:这里第二个script标签运行,重新给bundle2和bundle1的modules进行了加载)


webpack bundle中parentJsonpFunction的作用的更多相关文章
- 如何在webpack开发中利用vue框架使用ES6中提供的新语法
在webpack中开发,会遇到一大推问题,特别是babel6升级到babel7,要跟新一大推插件,而对于安装babel的功能就是在webpack开发中,vue中能够是用ES6的新特性: 例如ES6中的 ...
- web.xml中load-on-startup的作用
如下一段配置,熟悉DWR的再熟悉不过了:<servlet> <servlet-name>dwr-invoker</servlet-name> <ser ...
- C#中构造函数的作用
C#中构造函数的作用 共同点: 都是实例化对象,初始化数据的 默认构造是说所有的类都从祖先object那继承了空参的构造方法,你不写与写空参构造都存在,而有参数的构造一般是自己写的,写就有不写就没有, ...
- MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- js中getBoundingClientRect的作用及兼容方案
js中getBoundingClientRect的作用及兼容方案 1.getBoundingClientRect的作用 getBoundingClientRect用于获取某个html元素相对于视窗的位 ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- JAVA中protected的作用
JAVA中protected的作用 1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是 ...
- url中#号的作用
url中#号的作用就是本页面位置跳转 比如这个url地址:http://www.aaaaa.com/index.html?ad=34&m=c#red red就是index.html页面的依哥位 ...
- Java中hashCode的作用
转 http://blog.csdn.net/fenglibing/article/details/8905007 Java中hashCode的作用 2013-05-09 13:54 64351人阅 ...
随机推荐
- vue中如何引入css文件
两种方式引入css文件,一种是直接在main.js中引入(也可以在其他的.vue文件中的<script></script>标签中),即下面这种写法: import 'eleme ...
- Minor GC、Major GC、Full GC、分配担保
转载:http://www.importnew.com/15820.html 空间分配担保 区别 在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章.书籍和演讲来 ...
- 目标检测数据库 PASCAL 格式的 Ground Truth 的解析函数
最近在做一个目标检测算法,训练时用到了 bootstrap 策略,于是我将PASCAL的 Ground Truth 格式的读取函数从 Matlab 改写为 C++.PASCAL 的标注格式为: # P ...
- SpringBoot封装自己的Starter
https://juejin.im/post/5cb880c2f265da03981fc031 一.说明 我们在使用SpringBoot的时候常常要引入一些Starter,例如spring-boot- ...
- CentOS 基础命令
命令格式: 命令字 选项 参数1 参数2 ..... CentOS 7 主目录介绍 [xbb@localhost ~]$ ls -l /total 16lrwxrwxrwx. 1 root ro ...
- 023-zabbix性能优化中的几个中肯建议
随着zabbix的广泛应用,少数人的zabbix服务器在性能上出现瓶颈,或者在未来会出现性能方面的瓶颈,接下来讨论几个有效并且简单的优化方案. 服务器硬件 想通过几个简单的配置让服务器提高成倍的性能, ...
- 关于 Google 公司的一些趣闻
简评: 很少有科技公司能像 Google 一样象征着这个数字时代,你知道 Google,但不一定知道以下这些有趣数据.这些来自 VizionOnline 的数据概述了不为人知的 Google 趣闻,分 ...
- stdarg的使用
// 可变参头文件 <stdarg.h> // 主要依赖五个宏: va_list,va_start, va_arg, va_end, va_copy // 其中 va_copy 是 c99 ...
- 【leetcode】Sliding Puzzle
题目如下: On a 2x3 board, there are 5 tiles represented by the integers 1 through 5, and an empty square ...
- VS2017 + EF + MySQL 环境配置
我使用过程中遇到的坑(血泪啊) 安装环境VS2017MVC+WIN10+EF6+MySQL8.0.12 1.安装MySQL connector一定要6.10.8,8.0以上全是坑,会闪退!!! 2.安 ...