首页 > 其他分享 >前端工程化 (开始)

前端工程化 (开始)

时间:2023-06-26 16:37:17浏览次数:52  
标签:浏览器 script 开始 前端 JavaScript 模块 工程化 页面

为何偏偏JavaScript没有模块呢?如果要追溯历史原因,JavaScript之父——Brendan Eich最初设计这门语言时只是将它定位成一个小型的脚本语言,用来实现网页上一些简单的动态特性,远没有考虑到会用它实现今天这样复杂的场景,模块化当然也就显得多余了。

随着技术的发展,JavaScript已经不仅仅用来实现简单的表单提交等功能,引入多个script文件到页面中逐渐成为一种常态,但我们发现这种做法有很多缺点:

·需要手动维护JavaScript的加载顺序。页面的多个script之间通常会有依赖关系,但由于这种依赖关系是隐式的,除了添加注释以外很难清晰地指明谁依赖了谁,这样当页面中加载的文件过多时就很容易出现问题。

·每一个script标签都意味着需要向服务器请求一次静态资源,在HTTP 2还没出现的时期,建立连接的成本是很高的,过多的请求会严重拖慢网页的渲染速度。

从2009年开始,JavaScript社区开始对模块化进行不断的尝试,并依次出现了AMD、CommonJS、CMD等解决方案。但这些都只是由社区提出的,并不能算语言本身的特性。而在2015年,ECMAScript 6.0(ES6)正式定义了JavaScript模块标准,使这门语言在诞生了20年之后终于拥有了模块这一概念。

ES6模块标准目前已经得到了大多数现代浏览器的支持,但在实际应用方面还需要等待一段时间。主要有以下几点原因:

·无法使用code splittingtree shaking(Webpack的两个特别重要的特性,之后的章节会介绍)。

·大多数npm模块还是CommonJS的形式,而浏览器并不支持其语法,因此这些包没有办法直接拿来用。

·仍然需要考虑个别浏览器及平台的兼容性问题。

 

标签:浏览器,script,开始,前端,JavaScript,模块,工程化,页面
From: https://www.cnblogs.com/xinfangzhang/p/17506043.html

相关文章

  • 前端文件上传的几种交互造轮子 | 京东云技术团队
    背景前端文件上传本来是一个常规交互操作,没什么特殊性可言,但是最近在做文件上传,需要实现截图粘贴上传,去找了下有没有什么好用的组件,网上提供的方法有,但是没找完整的组件来支持cv上传,经过了解发现可以用剪贴板功能让自己的cv实现文件上传,于是自己就整合了目前几种文件上传的交互方式......
  • 前端实现权限控制 - 三种方法 - 不同的角色有不同的路由映射
     有代码:https://gitee.com/zhu-longxu/zhulx-rbacps:注意本地路由router有哪些规则?服务器返回的数据格式? 方法一:本地路由router包含静态路由规则;虽然动态路由规则定义了但是没有注入;动态路由规则在登录判断的时候选择性是否注入;服务器返回数据格式 [ "news", "cat......
  • JavaScript、vue、uniapp如何获取本周开始时间和结束时间?
    //获得本周的开始时间: getStartDayOfWeek(time){ letnow=newDate(time);//当前日期 letnowDayOfWeek=now.getDay();//今天本周的第几天 letday=nowDayOfWeek||7; letnowDay=now.getDate();//当前日 letnowMonth=now.getMonth();//......
  • web前端性能优化之资源文件加载优化
    前言首屏速度是用户体验的最关键一环,而首屏速度最大的决定性因数就是资源的加载速度而资源的加载速度=资源大小+网速资源大小影响的方面有1、压缩(如Gzip)2、一部分代码分割出来做异步加载,需要的时候在加载3、写代码的时候尽量精简本文主要针对,资源文件加载的优化。异步资......
  • 如何使用AI从零开始创业
    从头开始创业是一项具有挑战性的工作,需要大量的努力和奉献。幸运的是,随着人工智能技术的出现,这个过程变得越来越容易。这听起来好得令人难以置信,但人工智能实际上已经跨越了现在可以完全从头开始做生意的地步,而且时间也少得可笑!在本文中,我们将介绍一些为此推荐的工具,以及如何使用......
  • 前端Vue自定义精美tabs,可设置下划线图标 热门标题
    前端Vue自定义精美tabs,可设置下划线图标热门标题,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13186效果图如下:cc-beautyTabs使用方法<!--tabchange:tab选择事件tabList:tab数据--><cc-beautyTabs@tabChange="tabChange":tabList="t......
  • 前端Vue自定义滚动卡片,可以用于商品海报生成
    前端Vue自定义滚动卡片,可以用于商品海报生成,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13189实现代码如下:cc-scroolCard使用方法<!--dataInfo:滚动卡片数据 swiperIndex:滚动序列@change:滚动事件--><cc-scroolCard:dataInfo="data":......
  • 前端 js 获取 baseurl
    如果部署一个网站到网络需要知道对应的ip,这个时候前端的baseurl需要动态调整,一般是在public里面写个config.js,部署的时候改这个config.js里面的内容有一种偷懒的方式就是用户是知道你的ip的,这个时候可以用window.location.host获取当前浏览器的host网址拿这个当bas......
  • 【从零开始学微服务】03.软件架构的演化过程
    大家好,欢迎来到万猫学社,跟我一起学,你也能成为微服务专家。目前大部分的企业系统和互联网应用都是采用Web的形式提供服务能力,根据系统的组织方式和部署结构,我们通常把软件架构的演化过程分为以下几个阶段:单体架构垂直架构SOA架构微服务架构单体架构单体架构,也被成为巨石......
  • 文件上传-js前端验证
    先上传一个文件看看  这里有标识文件类型 方法一:禁用js前端验证使用工具禁用所有的js脚本  或者修改onsubmit参数      保证 returncheckFile()函数返回值为true 第二种方法: 上传png文件改为php后缀远程执行命令,回显成功......