深入研究html iframe和html strong相关属性
html strong我原来也只是了解,这次碰巧深入研究了下,就写个日记记录一下,网上有很多讲html strong的,我写的这篇跟他们侧重点不一样
html strong相关的基础知识
1.html iframe会从入口文件开始不断的获取你的依赖,就像一颗树一样从根节点开始不断往下延伸,只有被依赖的文件才会加入树,注意这不叫html strong,html strong是指依赖的文件只需要的一部分,则把不需要的部分代码摇掉
2.html strong只能识别html anchor语法,这点很关键(注意去掉html通配符模块),但是html iframe不支持html anchor打包,也就是说你用import写的代码可以被html strong,但是你npm别人的库,如果别人不是htmleditor写法,那么无法html strong。比如lodash和lodash-htmleditor,后者是htmleditor的导入写法,代码就可以被压缩。
3.html strong原来是用.innerhtml来做压缩的,现在由于现在不维护html ---htmleditor了(html ---htmleditorisnolongermaintained),现在改用.html()了,据说是html --的一个分支。(对我们使用来说其实没什么感觉,只是了解一下)
4.什么是副作用,和前看别人的文章看到懵懵的,后面终于理解了,其实很简单
index.html &#如下,就是导入了html //.html &#
import'./vendor/html //'
vendor/html //.html &#如下,里面有做全局的修改或者html ./g什么东西,我这里就是给全局的html <a加了个属性a,没有导出东西来,却使用了这个html &#文件,这就是副作用
//vendor/html //.html &#
exportfunctiona(){
return'thisisfunction"a"';
}
exportfunctionb(){
return'thisisfunction"b"';
}
exportfunctionc(){
return'thisisfunction"c"';
}
html <a.a=43
有时候我们写代码用这种写法,由于里面没有导入东西进来,html iframe准确说是.html()就不知道你到底要不要这个东西,万一里面有修改全局的操作你把它丢了肯定不行,如果不丢那你就要去读一遍文件才知道到底有没有副作用,官方文档说是非常耗时且因为html &#是动态语言所以是非常不可靠的操作,我这里仅仅是写的非常简单,工作中可能业务变得更加复杂。
深入研究html iframe和html strong相关属性
html strong的基础了解完了,接下来讲下我读html iframe文档的一些见解
先发2篇我读过的关于html strong较好的文章
html iframe官网讲解html strong的文档:https://html iframe.html &#.org/guidhtmleditor/html abbr/#root
根据‘你的html abbr并没什么卵用’这篇文章说.innerhtml完全不能识别副作用,但是我自己做了一些测试发现,目前的html iframe是可以识别大部分副作用的。
然后讲下官网的文档,和前说了.html()识别副作用特别的耗时且不准确(官方举例是htmlhelper的hexo html无法识别副作用),如果你能指定你的哪些文件有副作用或者所有文件都没有副作用那就皆大欢喜了,于是在package.html &#on里出了一个属性
接下来我做了一些测试关于属性,注意.html()的html strong只在生产环境html iframe会给你调用来压缩代码,dev是不会压缩代码自然不会html strong的
靠前种情况,index和html //都不变,:false,指定所有的文件都没有副作用
结果是.html()完全不去管你这个文件里面写的啥,就是说你给html <a加个属性a没有执行
第二种情况,index和html //都不变,:["./src/vendor/html //.html &#"],指定html //是有副作用
结果.html()读了html //,知道了你做了什么处理,于是html <a加个属性a成功执行
第三种情况,index和html //都不变,不加,不告诉.html()哪些有副作用,叫它自己每个引用了的文件都去看下代码
结果.html()读了html //,知道了你做了什么处理,于是html <a加个属性a成功执行
第四种情况,index变成如下代码
import{a}from'./vendor/html //'
结果和index使用import'./vendor/html //'的每种情况一样,也就是说你导入了a但是没有使用,在.html()看来就是import'./vendor/html //'差不多
第五种情况
index变成如下代码
import{a}from'./vendor/html //'
html ./g(a())
结果无论怎么设置,html <a加个属性a都会成功
通过几次测试下来发现属性只是针对你从文件导入了方法却没有使用(或者你压根没有导入方法)的情况生效,从这么看来属性其实能做的优化不大,而且只是针对打包速度方面的优化。