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

加载之——js 文件如何实现只加载执行

性能优化很常见的一个方式是提前加载文件,本文讨论如何在其他依赖未加载情况下提前加载一个.js文件。...1.导出一个函数 如果使用 加载一个js 文件,如果加载js 是一个自执行文件,那么会出现错误。...src="/test.js"> 使用标签会进行加载和执行,由于没有加载依赖函数bluer,控制台会出现以下问题: test.js:2 Uncaught...使用preload 加载资源 preload 会强制浏览器立即获取资源,并且该请求具有较高的优先级。并且是在阻塞 document 的 onload 事件的情况下请求资源。具体是使用。...rel属性常用如下: stylesheet 引入样式表 preload 预先加载当前页面资源 prefetch利用浏览器的空闲时间加载页面将来可能用到的资源 dns-prefetch 提前对DNS预获取

6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端页面图片加载失败显示默认图片

    方法有多种: 1.首先说我用的,看代码 //页面图片加载失败时 默认显示统一处理 document.addEventListener(“error”, function (e) { var...img”) { elem.src = “/image/General/errorDefault.png”; } }, true); 这种写法的好处,可以监听到动态js...添加进来的元素,有些人可能会用jq的事件代理delegate或者on(我没有实现,开始以为我代理的不对,后来知道是error事件不支持冒泡),最好先将默认图片加载: var imgObj = new...Image(); imgObj.src = ‘默认路径’; 如果默认图片加载失败,会出现闪烁并且不断触发error方法,陷入死循环。...解决办法就是定义全局变量 num 每触发一次error num++,当num大于某一阀值的时候停止 定义error = null;关闭监听,并且显示alt的内容,做到向下兼容。

    5.2K30

    如何浏览器缓存文件

    这就需要前端项目打包后需要暴露一个配置文件,每次页面刷新时会获取到最新的配置,达到动态替换页面文本的目的。 本文重点总结下如何可以浏览器缓存静态资源,保证每次获取的都是最新的资源。...浏览器缓存(Brower Caching)是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。...那么可以考虑将需要动态替换的文本配置放入.env文件,并在打包的时候,将.env文件的配置暴露出去成为JS文件,这样就可以打包后进行修改JS文件,配置实时生效。...这里我采用了使用随机数的方式来浏览器缓存文件。...也总结了如何浏览器缓存文件,方式包括: Cache-control: no-store 静态资源文件增加版本号 静态资源文件增加随机数 使用meta标签禁用缓存 最终使用了静态资源文件后面拼接时间戳的方式来达到缓存文件的目的

    2.7K30

    适配器模式:如何兼容的接口变得兼容

    在软件开发中,我们经常会遇到这样的情况:我们需要使用一个现有的类或者接口,但它与我们系统的目标接口兼容,而我们又不能修改它。这时候,我们该怎么办呢?...简介 适配器模式(Adapter Pattern)是一种结构型设计模式,它可以将一个接口转换成客户端所期待的另一个接口,从而使原本由于接口兼容而不能一起工作的类可以一起工作。...适配器模式也称为包装器模式(Wrapper Pattern),因为它通过一个包装类(即适配器)来包装兼容的接口,并提供统一的目标接口。...应用场景 适配器模式适用于以下场景: 当需要在一个已有系统中引入新的功能或者接口时,它与系统的目标接口兼容,但又不能修改原有代码时,可以使用适配器模式。

    27210

    适配器模式:如何兼容的接口变得兼容

    在软件开发中,我们经常会遇到这样的情况:我们需要使用一个现有的类或者接口,但它与我们系统的目标接口兼容,而我们又不能修改它。这时候,我们该怎么办呢?...简介优缺点应用场景Java 代码示例简介适配器模式(Adapter Pattern)是一种结构型设计模式,它可以将一个接口转换成客户端所期待的另一个接口,从而使原本由于接口兼容而不能一起工作的类可以一起工作...适配器模式也称为包装器模式(Wrapper Pattern),因为它通过一个包装类(即适配器)来包装兼容的接口,并提供统一的目标接口。...应用场景适配器模式适用于以下场景:当需要在一个已有系统中引入新的功能或者接口时,它与系统的目标接口兼容,但又不能修改原有代码时,可以使用适配器模式。

    22320

    如何给小程序页面加载一张背景图片

    /images/photo.png"); 在小程序里面,如此做法就行不通了,图片不但不会显示而且还会报错了 pages/index/index.wxss 中的本地资源图片无法通过 WXSS 获取,可以使用网络图片...图片.png 很多人都会有这样的一种感受,在一边学习一遍做项目的过程中,总会遇到很多坑,今天给大家填坑,如何给小程序页面插入一张背景图。...图片.png 2:将桌面的图片拖入指定服务器文件夹底下 3:得到图片网络连接,添加到代码中,则可以显示背景图片 ?...图片.png 解决方法二: 将背景图片使用编码base64进行转换,可以在这个网址进行http://tool.css-js.com/base64.html 转换,如:background-image:...url("转换后得到的编码文本"),如果多次使用的话可以将该值设置为全局变量,再在js文件进行引用即可; 1:打开在线图片转换平台 ?

    4.5K20

    利用JS生成二维码图片,优化WEB性能及页面加载速度

    N、尼玛这网页为毛就不能提供一个二维码,我用 QQ 浏览器扫一扫继续看呢? 很明显,在这种场景下,网页上如果能提供一个二维码就能给网站增加一个忠实访客,甚至是粉丝。...Begin 还是在上几个版本就已经集成了二维码图片功能,不过用的是外部 api 生成的,加载速度差强人意。当然,到了张戈博客,第一时间就换成了自建的php 二维码 api了。...现在 get 到了新技能,所以我也第一时间也将博客的二维码改成了 js 方式了,修改很简单: ①、加载 js 代码: <script src="//cdn.bootcss.com/jquery.qrcode...七、对比分析 本文介绍的二维码是每个<em>页面</em>动态生成的二维码,扫码后打开的也是当前<em>页面</em>,但是不管是静态还是动态,<em>图片</em><em>加载</em>的方式总是要产生一个 http 请求的,当<em>页面</em>处于海量访问时就会带来一定的负载了。。。...但是,如果使用 <em>js</em> 生成二维码的方式,这<em>图片</em>就在前台浏览器生成的了。抛开 <em>JS</em> 的兼容性不说,在海量请求场景应该可以极大的减少 http 请求量吧?

    4.6K50

    《前端实战总结》如何刷新页面的情况下改变UR

    由于公司最近有个需求是想让我们的get请求的参数都直接显示在浏览器url上,这样我们就可以直接通过复制url来显示对应的界面数据了。...背景介绍 由于我们常用的http请求一般是基于XHR对象的实现或者fetch实现,这种请求操作并不会触发浏览器url的变化,这样虽然也能正常请求数据并渲染到页面,但是如果用户在当前页面操作了某个get请求并得到了某条数据...但会出现一个性能问题,就是当我们执行了以上代码后,整个浏览器都会刷新,导致我们不想刷新的部分也刷新了,那我们有办法可以它局部刷新吗?答案是必须有。...history API Window.history是一个只读属性,用来获取History 对象的引用,History 对象提供了操作浏览器会话历史(浏览器地址栏中访问的页面,以及当前页面中通过框架加载页面...注意,调用 pushState() 后浏览器并不会立即加载这个URL,但可能会在稍后某些情况下加载这个URL,比如在用户重新打开浏览器时。新URL不必须为绝对路径。

    1.5K20

    《前端实战总结》如何刷新页面的情况下改变URL

    由于公司最近有个需求是想让我们的get请求的参数都直接显示在浏览器url上,这样我们就可以直接通过复制url来显示对应的界面数据了。...背景介绍 由于我们常用的http请求一般是基于XHR对象的实现或者fetch实现,这种请求操作并不会触发浏览器url的变化,这样虽然也能正常请求数据并渲染到页面,但是如果用户在当前页面操作了某个get请求并得到了某条数据...page=2'; 这段代码虽然可以改变浏览器url,如下图所示: 但会出现一个性能问题,就是当我们执行了以上代码后,整个浏览器都会刷新,导致我们不想刷新的部分也刷新了,那我们有办法可以它局部刷新吗?...history API Window.history是一个只读属性,用来获取History 对象的引用,History 对象提供了操作浏览器会话历史(浏览器地址栏中访问的页面,以及当前页面中通过框架加载页面...注意,调用 pushState() 后浏览器并不会立即加载这个URL,但可能会在稍后某些情况下加载这个URL,比如在用户重新打开浏览器时。新URL不必须为绝对路径。

    1.8K20
    领券