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

js - 预加载+监听图片资源加载制作进度条

因为功能的特殊性,就要求我们提前监听页面的静态图片是否全部加载完毕。即处理预加载。...原来页面加载完毕后刷新,再展示的图片都是缓存的图,而load又监听不到缓存的图。 要了我的老命了。 于是我又找,什么方法能监听缓存的图啊? 目标锁定了js里的img.complete。...注意划重点是js的属性。...所以这里使用上要注意,因为我获取的dom对象是jq的,要转成js的再调complete属性,于是代码直接是: if(MyImg[0].complete){ // 用于缓存图片 sumAdd...思路就是 : 加载进度 = 已加载图片资源个数/总的图片资源个数*100+'%'; 有了公式,又有之前我们准备的sum(当前加载个数),这个加载进度轻而易举就能得到了: let progress =

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

    JS 逆向百例】某公共资源交易网,公告 URL 参数逆向分析

    逆向目标 目标:某地公共资源交易网 主页:aHR0cDovL2dnenkuamNzLmdvdi5jbi93ZWJzaXRlL3RyYW5zYWN0aW9uL2luZGV4 接口:aHR0cDovL2dnenkuamNzLmdvdi5jbi9wcm8tYXBpLWNvbnN0cnVjdGlvbi9jb25zdHJ1Y3Rpb24vYmlkZGVyL2JpZFNlY3Rpb24vbGlzdA...== 逆向参数:URL 链接中的 projectId、projectInfo 参数 逆向过程 抓包分析 通过链接进入到网站,会发现先转会圈才进入到网页,这里可能就有个渲染加载的过程,打开开发者人员工具,...,使用 nodejs 里面的加密模块 crypto-js 来进行 DES 加密,调试过程中提示哪个函数未定义,就将其定义部分添加进来即可,改写后的完整 JS 代码如下: var CryptoJS = require...', 'r', encoding='utf-8') as f: public_js = f.read() project_id = execjs.compile(public_js...'Public', id_enc) return project_id def encrypted_project_info(info_enc): with open('ggzy_js.js

    57720

    静态资源js、css加载一部分但是状态码200问题排查

    业务系统的缓存策略是:页面加载时时更新,静态资源文件名加了hash采用一年有效期强缓存。 经过排查页面加载是正常的,但是其中有css只加载了一部分资源就被缓存起来了。...这让我想起之前遇到过js资源加载一部分,但是响应状态码还是200。...用户浏览器第一次访问业务,页面请求最终到服务端正确返回,再请求静态资源时,Nginx转发请求时,会把返回的静态资源缓存,由于磁盘满了,导致只缓存了一部分资源。...其他用户再请求静态资源,直接从缓存取资源,返回了不完整的资源,但是返回状态码还是200。浏览器认为资源正确加载,会对资源进行一年的强缓存。...hash,用户加载新的资源来解决问题

    2K20

    Javascript缓存投毒学习与实战

    0x01 简介&原理 js缓存投毒说白了就是受害者的浏览器缓存了一个被我们篡改的js脚本,如果缓存没有被清除,每次这个受害者访问网页的时候都会加载我们的js脚本。.../ root@kali:~/Desktop/js/tool# phantomjs sniffer.js -i url.txt -o target.json 这个脚本的作用主要是为了找出各大网站中缓存最久的脚本资源...可以通过修改url.txt的内容来指定网站,此次测试过程中url中包含126以及360几个网站。.../dump/" } 其中hacker_url为我们的js地址,此处为beef的js地址,inject_url 为伪装的js地址。...使用正常的DHCP为虚拟机分配ip地址,使用浏览器(未清理缓存)打开360: 这时可以看到beef上又上线了: beef的功能很强大,但不是本文的重点,当然js也可以换成其他,别如窃取某些网站的账号密码的

    1.9K51

    关于离线缓存Application Cache 使用 manifest文件缓存

    若引入,则加载manifest文件,然后根据manifest的文件内容进行资源的缓存,并缓存当前文档 之后访问,浏览器首先会查看manifest文件是否被修改(无论是内容还是注释),如果被修改,将当做第一次访问...,重新根据manifest文件内容进行缓存 如果应用缓存存在,且manifest没有被修改,浏览器直接从缓存中加载文档(注意:加载文档)和资源,不会访问网络(注意:无论联网与否,都不会访问网络) 在缓存多个资源文件时...所以如果想只缓存js、css、图片等文件,而不希望缓存HTML文档以保持获得最新内容的情况来说,这就是个大坑 根据Application Cache的加载机制,如果仅仅修改资源文件的内容(没有修改资源文件的路径或名称...所以在每次修改资源文件的同时,需要修改manifest文件,以触发资源文件的重新加载和缓存。...文件中定义的资源文件,其实同时还缓存了iframe中的缓存页面的文档,但不会缓存主页面,修改一下主页面,并按F5刷新 Document was loaded from Application Cache

    2.5K20

    从vue-router源码中看前端路由的两种实现

    它具有如下特点: hash虽然出现在URL中,但不会被包括在HTTP请求中。...根据MDN的介绍,调用history.pushState()相比于直接修改hash主要有以下优势: pushState设置的新URL可以是与当前URL同源的任意URL;而hash只可修改#后面的部分,故只可设置与当前同文档的...官方推荐的解决办法是在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。...本文写作的初衷就是遇到了这样一个问题:需要快速开发一个移动端的展示项目,决定采用WebView加载Vue单页应用的形式,但没有后端服务器提供,所以所有资源需从本地文件系统加载: // AndroidAppWrapper...文件中将assetsPublicPath字段的值改为相对路径 './' 调整生成的static文件夹中图片等静态资源的位置与代码中的引用地址一致 这是比较明显的需要改动之处,但改完后依旧无法顺利加载,经过反复排查发现

    1.7K30

    JavaScript性能提升学习

    JavaScript性能提升学习 1 提升js加载与执行性能 多数浏览器使用单一进程处理UI和js脚本执行,部分浏览器允许并行下载js文件,但仍会阻塞其他资源下载,比如图片,页面仍必须等到所有js...(){ Application.init(); }); 3.5 LazyLoad类库实现懒加载 2 提升js数据存取性能 2.1 管理作用域 尽量使用字面量和局部变量,减少数组项和对象成员的使用...DOM; (2) 隐藏元素,应用修改,重新显示; (3) 使用文档片段在当前DOM外构建一个子树,再拷贝回文档; (4) 使元素脱离文档流,克隆,修改副本,替换原始元素 动画:例如展开/折叠动画...Multipart XHR (MXHR) 优点:客户端一个HTTP请求从服务器端获取多个资源(http请求对ajax的性能影响极大) 缺点:浏览器无法缓存资源、老版本IE不支持 readyState...、条件预加载 8.4 使用位操作和原生方法 尤其是数学运算与DOM操作 9 构建并部署高性能的JavaScript应用 合并js文件减少请求数、使用YUI Compressor压缩js文件、服务器端压缩

    1.3K20

    Node.js v17.6.0 发布,允许从 HTTP 和 HTTPS URL 导入模块

    允许从 HTTP 和 HTTPS URL 导入模块 Node.js v17.6.0 一个新的实验性功能是允许我们从 HTTP 或 HTTPS URL 导入 ES Module。...,以下两个 Example,第一个尽管是加载的 HTTPS 资源但不是 HTTP/1,Example 2 导入了非网络依赖资源。...// Example1: 加载 HTTPS 资源 import hello from 'https://gitee.com/qufei1993/esmodule-https-import-example...无法加载非网络依赖项。 默认情况下不启用基于网络的加载,需要通过--experimental-network-imports 标志打开加载 HTTP 或 HTTPS 资源。...这两个以下划线开头的 API 被代替的公共 API 方法 process.getActiveResourcesInfo() 在 Node.js v17.3.0 所添加,该方法返回事件循环活动状态的资源类型

    1.3K40

    webpack 学习笔记系列04-资源处理优化

    静态资源处理 4.1 使用 file-loader / url-loader 加载图片资源 file-loader 和 url-loader 是处理图片资源最常用的两个 loader,并且在一定应用场景下可以相互替代...file-loader:根据配置项复制使用到的资源(不局限于图片)到构建后的文件夹,并更改对应的链接 url-loader:包含 file-loader 全部功能,并能根据配置转换为 Base64 方式引入...以 url-loader 为例,首先安装: $ npm install -D url-loader 修改 webpack.config.js: module.exports = { module...处理字体、富媒体资源 若不需要 Base64 可以直接使用 file-loader,否则用 url-loader: { // 文件解析 test: /\....缓存优化策略 静态资源可以设置 http 缓存策略,如: Cache-Control: max-age=31536000 7.1 chunk 代码拆分 当使用 chunkhash 时,得益于缓存策略,代码拆分和按需加载就很重要

    1.7K120

    Vue项目部署问题及解决方案

    特点:hash 虽然出现 URL 中,但不会被包含在 HTTP 请求中,对后端不会产生什么影响,改变 URL 不会重载页面。...history:利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法,来完成 URL 跳转而无须重新加载页面。...不过这种模式要玩好,还需要后台配置支持……所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面...:http://www.example/h5-year-bill/static/ 修改1:打包后的静态资源路径需要修改 找到 build/config/index.js,代码如下: 1 ... 2 build...例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"   因此,找到 src/router/index.js,代码如下: 1 // 不影响本地开发,兼容性做了处理

    2K30

    打破 iframe 安全限制的 3 种方案

    关注「前端向后」微信公众号,你将收获一系列「用心原创」的高质量技术文章,主题包括但不限于前端、Node.js以及服务端技术 一.从 iframe 说起 利用iframe能够嵌入第三方页面,例如: <iframe...三.思路 既然主要限制来自 HTTP 响应头,那么至少有两种思路: 篡改响应头,使之满足iframe安全限制 不直接加载源内容,绕过iframe安全限制 在资源响应到达终点之前的任意环节,拦截下来并改掉...(摘自Service Worker API) 注册 Service Worker 后能够拦截并修改资源请求,例如: // 1.注册Service Worker navigator.serviceWorker.register.../sw-proxy.js'); // 2.拦截请求(sw-proxy.js) self.addEventListener('fetch', async (event) => { const {request...onRequest(req, res) { const originUrl = url.parse(req.url); const qs = querystring.parse(originUrl.query

    27.6K63

    【腾讯云前端性能优化大赛】秒开的艺术:Hexo 博客首屏耗时优化实践

    避免资源加载引起的阻塞 HTML 页面常常通过 以及 标签引入 CSS 及 JS 文件,在被引用的资源加载期间,浏览器对后续...,浏览器仍会加载这个 CSS 文件,但不会去使用它,因此也不会阻塞页面的渲染) 向 link 标签增加 onload 属性,这会在浏览器完成 CSS 的加载后被执行。...[6m5io70klb.png] 在 Hexo 博客中要实现这种文件版本控制方法,一方面要在 Hexo 构建时修改静态资源的文件名以及对应的引用路径,另一方面要为带哈希值的静态资源设置一个较长的缓存时间...前面已经对 CSS、JS 等静态资源通过缓存优化了加载速度,那么 Hexo 博客的 HTML 静态文件加载是否也有优化的空间?这个问题的回答是肯定的。...">(这会指示浏览器请求该 URL,从而缓存 URL 指向的资源) 这样,在访客点击超链接跳转到博客的内页之前,这个页面的 HTML、CSS 和 JS 文件应该都已经在浏览器的缓存里面了,页面跳转时的网络请求时间开销被极大降低

    926141

    cocos2d-js 在线更新代码脚本 动态更新脚本程序 热更新 绕过平台审核 不需重新上架

    经过小修改,已经可以确保同步更新资源。其实做的工作就是:等最终全部下载完成后再解压文件,这样的改动是最小的。...但不同zip不要有重复的js。 2、非js可以用zip,也可以直接列出。 由于确保所有资源都下载完成后才解压js,所以玩家即使N次更新失败,还是会妥妥的停留在上一版。...2、非代码资源,避免修改,可以直接用新文件,但不要替换旧文件,这样目的是避免多次版本更新造成新旧混乱。...除了main.js外,把其他js列到一个文件中:src/jsList.js。AssetsManager检查完之后,先加载这个jsList.js,然后根据里边的配置再加载全部js。...1、修改main.js加载AssetsManager功能 cc.game.onStart = function(){ cc.view.setDesignResolutionSize(800

    1.6K40

    微信h5跳转小程序wx-open-launch-weapp开放标签不显示(已解决)

    openTagList: ['wx-open-launch-weapp'], // 填入打开小程序的开放标签名 }) 然后把修改的代码发布到服务其中...开始支持,于是我到浏览器页面查看了js加载资源,果然发现了问题所在,原来在之前的母版页中有一个jweixin-1.3.0.js的SDK先加载了,所以导致了这个开发标签获取不到的问题,于是我将jweixin...确认url是页面完整的url(请在当前页面alert(kk.split('#')[0])确认),包括'http(s)://'部分,以及'?'...后面的GET参数部分,但不包括'#'hash后面的部分。 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。...如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用kk.split('#')[0]获取,而且需要encodeURIComponent

    5.4K30

    hash和history路由模式

    我们熟知的JS框架如react,vue,angular,ember都属于SPA 与之对应的是多页面应用,他们的区别如下 优点: 用户体验好、快,内容的改变不需要重新加载整个页面,避免了不必要的跳转和重复渲染...History模式原理: History API 允许SPA在浏览历史记录中添加、修改记录而不会触发页面加载。...但每次点击一个链接,就去服务端请求,这样会有页面加载的等待。 后来慢慢就出现了单页应用,在第一次访问时,就把 html 文件,以及其他静态资源都请求到了客户端。...之后的操作,只是利用 js 实现组件的展示和隐藏。除非需要刷新数据,才会利用 ajax 去请求。...URL 相关 API 最早改变 URL但不向服务器发送请求的方式就是 hash。

    17610

    pwa-之service worker 基本概念

    这将有助于我们加快加载时间,而不必每次访问同一网站时都必须从服务器获取。 当然,最重要的是,当我们网络不畅时,这些资源将可供我们使用。...Service workers service worker是浏览器和服务器之间的脚本,主要作用是拦截请求,修改响应,以及一些其他的作用。...网站可以正常工作的前提是能获取到html,css,js资源。在之前这些资源主要由浏览器管理,对于开发者而言是不可见的。现在通过service worker我们可以掌控这些资源。...你可以写在js文件里面,在html文件中引入,但不能在service worker的js中注册。 如何注册 先创建一个html文件 <!...之后根据需要重启,但不是不会在触发activate事件。 service worker将会始终拦截请求,重启页面也是为了这个。

    1K31
    领券