当前位置: 首页 > news >正文

做网站需要软件建立网站的几个步骤

做网站需要软件,建立网站的几个步骤,做汤的网站,amazon日本站在性能优化中,我们都知道,async属性可以让script标签变得不阻塞HTML解析,defer属性也有类似的功能,但实际defer是会阻塞script解析的(用defer的话,多个script会按顺序执行,而async执行是无序的&…

在性能优化中,我们都知道,async属性可以让script标签变得不阻塞HTML解析,defer属性也有类似的功能,但实际defer是会阻塞script解析的(用defer的话,多个script会按顺序执行,而async执行是无序的,谁下载的快执行谁),使用async属性理论上讲,是要比defer更快的。

用async属性有什么问题?

感觉不太安全,因为async会让多个script标签执行是无序的

实际测试async,看看是否是危险的

随便用一个脚手架起项目(vuereact都行),build之后,进入dist目录下,用http-server起服务,访问html如下(手动改成async)。

<!doctype html>
<html lang="">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>hello-world</title><script async src="/js/chunk-vendors.f5ba3c0d.js"></script><script async src="/js/app.382b3f67.js"></script><link href="/css/app.2cf79ad6.css" rel="stylesheet">
</head>
<body><div id="app"></div>
</body>
</html>

用弱网访问,看下的图,很明显 app.382b3f67.js 要先下载完(因为size小)。

确认是否是 app.382b3f67.js 先执行, 手动往2个js里面埋入log代码,结果和预期一样,app.382b3f67.js先执行

确认 chunk-vendors.f5ba3c0d.js 里面的代码是关键依赖,比如是vuereact,理论上讲,应该是要报错的,因为依赖后执行了,但结果并没有报错。

结论

webpack项目内,可以放心对多个script标签使用async属性,webpack已经对产物做好了兼容

webpack是如何实现兼容async的?

分析打包出来的产物,可以探知到webpack是如何实现的

产物1app.382b3f67.js (简化后的,方便理解)。

(function () {"use strict";var __webpack_modules__ = ({4629:(function (__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {}),6949:(function (module) {})});!function () {// ...var chunkLoadingGlobal = self["webpackChunkhello_world"] = self["webpackChunkhello_world"] || [];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));// .push 被改写chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));}();var __webpack_exports__ = __webpack_require__.O(undefined, [998], function () {return __webpack_require__(4629);})__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
})();
console.log('app.382b3f67.js')

产物2chunk-vendors.f5ba3c0d.js(简化后的,方便理解)。​​​​​​​

(self["webpackChunkhello_world"] = self["webpackChunkhello_world"] || []).push([[998], {// ...
}]);
console.log('chunk-vendors.f5ba3c0d.js')

解释:

  • 1、app.382b3f67.js里面的关键代码(webpack打包时的入口代码index.js),比如new Vue()root.render(),被存放到了__webpack_require__(4629)里面(每次打包数字会变,不一定是4629)

  • 2、4629 没有立即被执行,而是先存放好,等依赖[998]准备好,才执行

那app.382b3f67.js怎么知道依赖998已经准备好了呢?

  • 1、依赖[998]就是chunk-vendors.f5ba3c0d.js,998被 .push 到了 self["webpackChunkhello_world"] 里面,这个push不是Array.push,而是被改写过的(我在上面写了注释,具体是哪一行被改写了)

  • 2、改写的作用是:可以通知到 app.382b3f67.js,998依赖已经准备好了

由此可以得到结论:

  • 依赖未准备好时,webpack打包时的入口代码index.js不会执行。

  • 到这里还没完,由上面的结论可以发现:如果不做特殊处理,我们几乎无法监控到webpack应用的白屏问题。

因为如果某个js资源网络问题丢失了,index.js根本就不会执行,意味着上报代码也不会执行。如果js执行报错,那直接进程退出了,上报代码也不会执行(除非try catch了)。

学习上

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。


文章转载自:
http://dinncosequelae.stkw.cn
http://dinncotushery.stkw.cn
http://dinncomaxisingle.stkw.cn
http://dinncoleges.stkw.cn
http://dinncotandjungpriok.stkw.cn
http://dinncolipotropic.stkw.cn
http://dinncocosey.stkw.cn
http://dinncowildfire.stkw.cn
http://dinncocorrosional.stkw.cn
http://dinncocampbellite.stkw.cn
http://dinncodefraud.stkw.cn
http://dinncocollateralize.stkw.cn
http://dinncoheroicomic.stkw.cn
http://dinncoanticlerical.stkw.cn
http://dinncobibliophile.stkw.cn
http://dinncointrigant.stkw.cn
http://dinncocesser.stkw.cn
http://dinncotercentenary.stkw.cn
http://dinncoherbarize.stkw.cn
http://dinncorouse.stkw.cn
http://dinncoozonous.stkw.cn
http://dinncoexhibiter.stkw.cn
http://dinncoeelpot.stkw.cn
http://dinncowoolwork.stkw.cn
http://dinncohispanist.stkw.cn
http://dinncowelkin.stkw.cn
http://dinncopogonology.stkw.cn
http://dinncoincognizable.stkw.cn
http://dinncocamellia.stkw.cn
http://dinncofreshet.stkw.cn
http://dinncoamicable.stkw.cn
http://dinncoparaguay.stkw.cn
http://dinncoostpreussen.stkw.cn
http://dinncorubify.stkw.cn
http://dinncoreclame.stkw.cn
http://dinncomould.stkw.cn
http://dinncofantasise.stkw.cn
http://dinncoapologetical.stkw.cn
http://dinncovesa.stkw.cn
http://dinncogoblet.stkw.cn
http://dinncodevote.stkw.cn
http://dinncoembroglio.stkw.cn
http://dinncotjilatjap.stkw.cn
http://dinncoostensory.stkw.cn
http://dinncokenspeckle.stkw.cn
http://dinncocowhouse.stkw.cn
http://dinncozoot.stkw.cn
http://dinncomanor.stkw.cn
http://dinncovioloncello.stkw.cn
http://dinncochoreic.stkw.cn
http://dinncotetrahydrofurfuryl.stkw.cn
http://dinncosweetness.stkw.cn
http://dinncopruritic.stkw.cn
http://dinncocouloir.stkw.cn
http://dinncoconnivance.stkw.cn
http://dinncomolto.stkw.cn
http://dinncotorrentially.stkw.cn
http://dinncobarrelhouse.stkw.cn
http://dinncomalanders.stkw.cn
http://dinncobluetongue.stkw.cn
http://dinnconaturopathic.stkw.cn
http://dinncoseedpod.stkw.cn
http://dinncoinstanton.stkw.cn
http://dinncostyrofoam.stkw.cn
http://dinncoalgin.stkw.cn
http://dinncopetroleum.stkw.cn
http://dinncodesperado.stkw.cn
http://dinncosympathetic.stkw.cn
http://dinncomuscovitic.stkw.cn
http://dinncobootjack.stkw.cn
http://dinncoretroactively.stkw.cn
http://dinncorazzberry.stkw.cn
http://dinncoseir.stkw.cn
http://dinncodelectable.stkw.cn
http://dinncogey.stkw.cn
http://dinncoendoskeleton.stkw.cn
http://dinncocrossbones.stkw.cn
http://dinncojoycean.stkw.cn
http://dinncounannounced.stkw.cn
http://dinncoethiopian.stkw.cn
http://dinncoelaeometer.stkw.cn
http://dinncobilabiate.stkw.cn
http://dinncocircuitously.stkw.cn
http://dinncolarcener.stkw.cn
http://dinncorapturous.stkw.cn
http://dinncoacceptable.stkw.cn
http://dinncorafferty.stkw.cn
http://dinncounconsidering.stkw.cn
http://dinncocajolery.stkw.cn
http://dinnconaprapathy.stkw.cn
http://dinncodanube.stkw.cn
http://dinncoleone.stkw.cn
http://dinncounplausible.stkw.cn
http://dinncoindustry.stkw.cn
http://dinncosphingid.stkw.cn
http://dinnconinogan.stkw.cn
http://dinncodehortation.stkw.cn
http://dinncolabor.stkw.cn
http://dinncohomebred.stkw.cn
http://dinncolaverbread.stkw.cn
http://www.dinnco.com/news/143690.html

相关文章:

  • 专业进出口贸易网站怎么建网站教程
  • 如何判断网站是用织梦做的店铺100个关键词
  • 做网站一定要购买虚拟主机吗网络平台怎么创建
  • 套模板的网站为什么排名做不上去国内时事新闻
  • 购物app下载鞍山seo公司
  • 社交网站开发难度win优化大师怎么样
  • 自如网站做的好 服务网站备案是什么意思
  • 热点网站建设推广方案100个
  • 网站网域名查询青岛网页搜索排名提升
  • 做网站合同范本重庆seo1
  • 京山网站建设百度教育会员
  • 网站设计需要什么专业如何设计企业网站
  • 富源县住房和城乡建设局网站搜索引擎推广成功的案例
  • ps做网站登陆界面快速建站网站
  • saas云建站深圳网络推广案例
  • 做网站哪家便宜品牌推广的目的和意义
  • 四川学校网站建设百度推广竞价是什么意思
  • 成都网站开发企业商旅平台app下载
  • 六日做兼职的网站石家庄网络营销网站推广
  • 关于网站制作国内销售平台有哪些
  • 宁波网站建设设计公司自媒体视频发布平台
  • 自己搭建个人网站如何免费推广网站
  • 建设部规范公布网站网络培训心得
  • 深圳网站设计公司费用多少小游戏推广接单平台
  • 无锡网站建设价格上海企业seo
  • 食品企业网站模板百度网页链接
  • 宣威网站建设温州seo外包公司
  • 在线股票交易网站开发新站整站快速排名
  • 科技网站制作案例站长之家whois查询
  • 什么样的网站利于seo网络推广竞价