自学前端不就,查看公司的主页,在head区域有如下代码:
......
......
疑惑1:短路运算法用在这里,后续是做什么用的?一般都这么做吗?
疑惑2:代码的意思是在script前面动态加
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
实现过一个类似的统计库,简单分享下个人对这个机制的理解。
你的疑问在于,为什么不直接添加
hm.src中的链接到 script 标签脚本中,而是先初始化_hmt变量后才添加该脚本。这应当是和统计库的功能实现有关的。简要介绍:_hmt实质是是一个消息队列的缓存。插入该数组的内容均是各类点击、滑动、触摸等用户事件。推入这个消息队列中的事件会被统计库上报到百度统计。这个缓存是支持在第一方业务代码中通过 JS API 来写入的。例如使用百度统计的开发者,可以在自己的 JS 代码中编写形如
_hmt.push(xxx)的逻辑,推送自定义的事件到消息队列中。由于第三方脚本同样能写入该消息队列,这就要求该队列的数组变量不仅必须全局,还必须尽早初始化。而统计库的上报等业务逻辑则可以延迟到页面主要内容加载完成后再执行。
为了实现 3 中的要求,统计脚本的引入方式才设计为【首先初始化一个数组,然后动态加载统计脚本】。这样加载队列数组时直接在页面中内联初始化非常高效,后面的统计脚本延迟加载,减小对页面加载速度的影响。
疑惑二:这个应该是百度统计吧。。。
说明
1.是判断是否已经定义了_hmt变量,或者定义变量
2.动态载入。节点操作载入的优先级 < 静态资源.这样是为了不影响渲染页面
测试
1.第一行你可以自行研究
2.第二行你可以对比2种载入效果。
这是一段百度统计的代码,
至于为什么
“我单独创建了一个页面,只加了这个JS代码,弹出的页面内容就咨询窗口那些。”
因为跨域了
至于什么是跨域
就是把别人家的东西拿到自己家用的方法