首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js怎么动态加载js文件(JavaScript性能优化篇)转

下面介绍一种JS代码优化一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 【基本优化】 将所有需要标签都放在之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题...【合并JS代码,尽可能少使用script标签】 最常见方式就是带代码写入一个js文件中,让页面只使用一次标签来引入 ? 3....【动态创建script来加载-推荐】 function loadJS( url, callback ){ var script = document.createElement('script...该原理实现也有很多不错js类库可以使用,如LazyLoad.js,支持数组形式引入,打开浏览器在network中可看到js是同步加载 ? ? 7....【总结】 最好方式还是使用动态创建script方式加载,当动态创建script,浏览器会分配一个线程去下载src指向资源,多个script也是同步下载 (adsbygoogle

19.4K12
您找到你想要的搜索结果了吗?
是的
没有找到

如何动态加载js

第三方js文件,自己写js文件,js越来越多了怎么办? 提出问题: 1、js文件太多了,每个页面都写太麻烦。 2、如果路径变化了,或者js名称变化了怎么办?...3、如何约束js文件加载顺序?a.js定义了一个函数,b.js要调用,但是b.js加载了,a.js还没加载完成,造成函数未定义,无法调用。 4、js文件合并。...5、加载js完毕之后,要可以执行回调函数。  解决问题: 如何解决这些问题呢?我想到办法是——动态加载js。就是通过js代码方式来加载。...把IE10设置为兼容IE7模式,就一切正常。看了是IE10新特性照成。那么到底是怎么回事呢?断点跟踪吧。 弄了好久才发现,原来是js文件会被加载多次。 为什么被加载了多次呢?...下一步是如何管理js。还有js客户端缓存、复用问题。

12.8K50

JS动态加载数据绑定事件--delegate() 方法

JS动态加载数据绑定事件-委托delegate() 方法 ---- W3C规范定义 定义和用法 delegate() 方法为指定元素(属于被选元素子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行函数...使用 delegate() 方法事件处理程序适用于当前或未来元素(比如由脚本创建新元素)。...---- JavaScript动态加载数据,同时给他加载绑定事件,我选用Jquwey中 delegate() 方法 我理解,delegate()方法属于异步式加载绑定,dom元素加载未完成之前,可以委托给...delegate() 方法来实现绑定操作。...第二个参数为 要绑定事件 详情,请翻阅delegate() 方法 ---- 效果如图返回按钮:

7.9K30

前端 实战项目·动态加载 JS 文件

动态加载 JS 文件 对于 Vue、React 等框架开发单页面应用,在某些页面开发特殊功能时经常需要依赖第三方 JS 文件,如果在全局引入 CDN 资源可能会加载冗余文件,此时最好使用动态加载方式...动态加载 JS 脚本指仅在某些特殊页面引入依赖文件,而非全局引入,这样可以避免在这些页面并未打开时造成加载无用资源,提高页面加载速度同时,也让整个项目更加模块化。...文档对象模型(DOM)允许使用 JavaScript 动态创建 HTML。 元素也是如此,它与页面其他元素没有什么不同,所以可以手动创建 来加载 JS 文件。...defer 与 async 元素有两个属性 defer 与 async 分别代表两种 JS 脚本加载执行模式。...对于 defer,可以认为是将外链 js 放在了页面底部。js 加载不会阻塞页面的渲染和资源加载。defer 会按照原本 js 顺序执行。

5.2K40

动态网页常用两种数据加载方式ajax和js动态请求

对于静态网页,我们只需要访问对应URL就可以获得全部数据了,动态网页则没有这么简单。...但是你会发现,在翻页过程中,页面的url并没有发生变化,这说明这个表格中数据动态加载。...目前,常用动态加载技术有以下两种 1. ajax 2. js 通过构建ajax或者js请求,来获得对应数据。...对于这些动态加载数据,我们就不能只请求网页url了,而是需要找到上述两种请求链接,一些简单动态加载链接,可以通过浏览器调试工具来快速查找 1. ajax ajax请求通过network选项中...2. js动态加载 js请求通过network选项中js请求来进行查找,在下列网站中,其翻页数据就是通过js请求来动态加载 https://finance.sina.com.cn/stock/reportch

4.6K20

js动态加载、缓存、更新以及复用(三)

总体思路 1、  建立一个js服务,该服务实现通用js文件加载、依赖、缓存、更新以及复用。 2、  各个项目如果使用通用js,可(bi)以(xu)使用js服务实现加载。...Js服务可以提供加载用函数。(正在考虑要不要使用sea.js) 5、  Js服务加载js文件,不需要做任何修改。当然也不负责各个文件里函数名称是否冲突。   ...4、  如果没有缓存信息,说明这是top页面,需要加载另一个js(bootLoad.js)。这个是真正干活文件。这里放在配置信息和加载css、加载js函数。然后开始各种加载。   ...开发差不多了,在改成引用合并后js文件。那么引用js部分怎么处理呢?尤其是一边开发UI,一边开发项目的时候。 6、 怎么还有css事?   ...12、  其他js都是怎么下载?     做一个js文件路径字典,json格式,弄个昵称最为key,域名 + 路径 + 文件名作为value。

6.3K90

Js捕获异常方法

Js捕获异常方法 JavaScript异常主要使用try catch finally语句以及窗口对象windowonerror事件来捕获。...try catch finally try catch finally只能捕获运行时错误,无法捕获语法错误,可以拿到出错信息,堆栈,出错文件、行号、列号。...,当运行时错误产生时,Error实例对象会被抛出,Error对象也可用于用户自定义异常基础对象,Js内建了几种标准错误类型: EvalError: 创建一个error实例,表示错误原因:与eval...window.onerror window.onerror可以捕捉语法错误,也可以捕捉运行时错误,可以拿到出错信息,堆栈,出错文件、行号、列号,只要在当前window执行Js脚本出错都会捕捉到,通过...出于安全方面的考虑,当加载自不同域脚本中发生语法错误时,语法错误细节将不会报告。 /* message:错误信息(字符串)。

4.8K20

爬虫如何抓取网页动态加载数据-ajax加载

本文讲的是不使用selenium插件模拟浏览器,如何获得网页上动态加载数据。步骤如下: 一、找到正确URL。二、填写URL对应参数。三、参数转化为urllib可识别的字符串data。...如果直接抓浏览器网址,你会看见一个没有数据内容html,里面只有标题、栏目名称之类,没有累计确诊、累计死亡等等数据。因为这个页面的数据动态加载上去,不是静态html页面。...需要按照我上面写步骤来获取数据,关键是获得URL和对应参数formdata。下面以火狐浏览器讲讲如何获得这两个数据。 肺炎页面右键,出现菜单选择检查元素。 ?...这里会出现很多网络传输记录,观察最右侧红框“大小”那列,这列表示这个http请求传输数据量大小,动态加载数据一般数据量会比其它页面元素传输大,119kb相比其它按字节计算算是很大数据了,当然网页装饰图片有的也很大...有的url很简单,返回一个.dat文件,里面直接就是json格式数据,这种是最友好了。有的需要你设置大量参数,才能获得,而且获得是html格式,需要解析才能提取数据

5.3K30

JS事件冒泡和捕获

天时地利迷信~ ---- 各位宝宝,最近怎么样?北京冬天来了,好冷,幸好下了一场不大不小雪,否则对冬天真是喜欢不起来。...事件机制 ---- 事件触发三个阶段: window往事件触发处传播,遇到注册捕获事件会触发 传播到事件触发处时触发注册事件 从事件触发处往window传播,遇到注册冒泡事件会触发 事件触发一般会按照...( 'click', event => { console.log('捕获 ') }, true) 我们来看一下如下代码到底是怎么结果: var selector = document.querySelector.bind...和outer上面,而且这两个事件处理函数useCapture选项为true,说明他们被注册在捕获阶段。...于是,document和outer点击处理函数被执行 继续向下寻找,直到到达inner元素本身,捕获阶段就此结束。

2.5K20
领券