2022年8月

参考自知乎:https://zhuanlan.zhihu.com/p/43282197

问题描述

HTML三大组成:html、js、css。

由此,提出问题:这三者之间是什么关系?是否会相互产生出乎预期的影响?

合作关系

网页主要有三部分组成,结构(HTML)、表现(CSS)、行为(Javascript)。

html是主体,装载各种dom元素;css用来装饰dom元素;javascript控制dom元素。

相互影响

  • js执行会阻塞DOM树的解析和渲染吗?
    会。
  • css加载会阻塞DOM树的解析和渲染吗?
    css加载不会阻塞DOM树的解析、css加载会阻塞DOM树的渲染。
  • css加载会阻塞后面的js执行吗?
    会。
  • css加载可以间接阻塞DOM树的解析吗?
    可以。因为css会阻塞js执行,而js执行又可以阻塞DOM树的解析。

典型案例

  • js中存在ajax同步调用,执行时间太长
  • css文件太大,网络请求时间太长

找到了网站底部广告合适的解决办法。在js中调用停止页面加载的方法。

<script type="text/javascript">
    window.stop();
</script>

但此方法,在特定情况下也存在问题。如果在这段代码之前的js代码中存在异步操作或者有dom加载完成才有的操作时,会发生阻塞,导致页面异常。比如本网站的管理后台中,文章的编辑页面不显示编辑工具条。因此,管理后台不适合采用这种方式。当然,网站前台则没有问题,因为前台完全没有使用js代码。

在思考了种种方式之后,想到应该从服务商使用html注入的方式入手。html注入原理是,通过服务器软件在</body>标签之前写入一段元素。那么要解决的话,就得让</body>元素消失或者注释掉。之所以可以注释掉该元素,是因为浏览器具有容错性,会自动添加缺失的标签。这样,即使有html注入,注入的代码也在注释之中,不会被解析。问题完美解决。

当然,还有其他方法,但不太合适。比如,在js中写代码,使页面加载完成后,隐藏body最后一个子元素。不合适的原因:元素仍然会加载,占用资源、不美观。

<script type="text/javascript">
    window.onload = function () {
        document.getElementsByTagName("body")[0].lastElementChild.style.display = 'none';
    };
</script>

我第一个知道的浏览器脚本插件是tampermonkey(中文俗称:油猴),当需要用到脚本的时后,我就会在百分浏览器上安装上该插件。常用的脚本有百度网盘简易下载助手(可以不限速下载百度网盘里的文件)、Github增强(可以高速下载Github网站上的文件链接)。之前上大学时,还用过自动刷网课的脚本。感觉还是很有用的。

但是最近我对tampermonkey最新的版本号一直不太喜欢,又了解到其并不是开源的。还有个大的缺点是,管理页有打钱弹窗提示,不优雅,不符合互联网的分享精神。于是寻找替代方案。然后找到了一款开源的脚本插件,叫violentmonkey(中文名:暴力猴)。violentmonkey是开源的,且管理页简洁、功能合理且自由。打算之后长期使用此插件。

最近买了可以刻录的DVD光盘(类型为DVD-RW),容量为4.7G。

在网上了解到,DVD-RW理论可以擦写的次数很高,但是实际使用可能就30次左右。平时使用要注意保养,使用前使用软布擦拭。

继续了解使用DVD刻录视频,发现支持的分辨率都不到720p的标准,视频效果也不如现在的主流视频格式。同时也没发现有优秀的DVD视频刻录软件。因此,不打算将DVD用来刻录视频,只用来存放视频、音乐或者其他文件,当然也可以用来刻录操作系统iso文件。这里要说明的是,刻录视频和存放视频是两个不同的概念。刻录视频是指,刻录DVD播放机支持的视频格式(DAT...),刻录的结果可能是体积变大。存放视频就单纯的是存放任意格式的文件,不可用于DVD播放机播放。

昨天,固态硬盘和2.5转3.5硬盘支架到货了,于是给ToughBook cf30 mk1安装win7系统。

安装过程特别麻烦,碰到了以前碰到过的问题。在ventoy中启动一些pe和iso发现无法启动,原因是缺少ventoy适配声明文件,在iso中补充这个文件即可。从ventoy中优化过后的iso启动,安装过程提示没有驱动。猜想是缺少USB3.0驱动,然后用联想的驱动注入工具注入驱动。重装时还是提示缺少驱动,不知为何。

于是从pe中使用WindowsNTSetup安装。先使用傲梅分区助手分几个区,过程中错误地将磁盘初始化为gpt格式,导致后来重启没办法进入系统。于是将磁盘重新转为mbr格式,重新安装,成功。

win7的安装特别麻烦,即使之前有安装经验,但是很容易忘记。微软这不明所以的提示让人摸不着头脑。

安装过程还有个大问题,就是偶发性地出现电脑在bios界面或者ventoy界面时,键盘的大部部分按键没有用,只有回车键和一些不相关的按键有用。按下按键,电脑会发出嘀的声音,但是没有界面反馈,不知为何。

有个奇怪的现象,就是载入iso时,有时快,有时慢。猜想是电脑主板温度过高,导致硬件性能下降。但是此猜想无法准确验证。

安装成功后,安装官方提供的完整驱动包。安装结束后发现,声卡驱动无效。设备管理器界面显示的驱动名称为:sigmatel high definition audio codec。找了网上的两个驱动安装都无效。后来,多次卸载驱动,重新扫描检测硬件改动,系统自动安装了操作系统自带的通用声卡驱动,扬声器可以正常播放声音了。猜想该驱动没有中文版,所以在中文操作系统上安装无效。