动态加载/删除css文件以及图片预加载
- // 添加link标签
- this.loadCss = function(url, callback) {
- var link = document.createElement('link');
- link.type="text/css";
- link.rel = "stylesheet";
- link.href = url+'1';
- document.getElementsByTagName('head')[0].appendChild(link);
- if (callback) {
- callback.call(link);
- }
- }
- // 通过判断是否为新增模块
- if("#" + relId == "#setup_12"){
- self.loadCss('/css/v2.0/pc/new_main.css?v=201702231412', function(){
- self.$_link = this;
- })
- self.loadCssComplete('/css/v2.0/pc/new_main.css?v=201702231412', function(){
- $("#" + relId).show(); //判断css是够加载完成,如果完成则显示模块
- })
- }else{
- if($.isEmptyObject(self.$_link)){
- console.log($.isEmptyObject(self.$_link))
- }else{
- document.getElementsByTagName('head')[0].removeChild(self.$_link);
- self.$_link = new Object();
- window.location.reload(); // 在切换tabs时删除link标签并刷新避免缓冲造成影响
- }
- $("#" + relId).show();
- }
- //构造器函数
- function resLoader(config){
- this.option = {
- resourceType : 'image', //资源类型,默认为图片
- baseUrl : './', //基准url
- resources : [], //资源路径数组
- onStart : null, //加载开始回调函数,传入参数total
- onProgress : null, //正在加载回调函数,传入参数currentIndex, total
- onComplete : null //加载完毕回调函数,传入参数total
- }
- if(config){
- for(i in config){
- this.option[i] = config[i];
- }
- }
- else{
- alert('参数错误!');
- return;
- }
- this.status = 0; //加载器的状态,0:未启动 1:正在加载 2:加载完毕
- this.total = this.option.resources.length || 0; //资源总数
- this.currentIndex = 0; //当前正在加载的资源索引
- };
- resLoader.prototype.start = function(){
- this.status = 1;
- var _this = this;
- var baseUrl = this.option.baseUrl;
- for(var i=0,l=this.option.resources.length; i<l; i++){
- var r = this.option.resources[i], url = '';
- if(r.indexOf('http://')===0 || r.indexOf('https://')===0){
- url = r;
- }
- else{
- url = baseUrl + r;
- }
- var image = new Image();
- image.onload = function(){_this.loaded();};
- image.onerror = function(){_this.loaded();};
- image.src = url;
- }
- if(isFunc(this.option.onStart)){
- this.option.onStart(this.total);
- }
- };
- resLoader.prototype.loaded = function(){
- if(isFunc(this.option.onProgress)){
- this.option.onProgress(++this.currentIndex, this.total);
- }
- //加载完毕
- if(this.currentIndex===this.total){
- if(isFunc(this.option.onComplete)){
- this.option.onComplete(this.total);
- }
- }
- };
- var loader = new resLoader({
- resources : [
- ],
- onStart : function(total){
- self.$loadingId.innerText='0%';
- self.$loadingIcon.style.left = '0%';
- self.$loadingCon.style.width = '0%';
- },
- onProgress : function(current, total){
- var percent =Math.floor(current/total*100);
- self.$loadingId.innerText=percent + '%';
- self.$loadingIcon.style.left = percent + '%';
- self.$loadingCon.style.width = percent + '%';
- },
- onComplete : function(total){
- self.$loadingId.innerText='100%';
- self.$loadingIcon.style.left = '100%';
- self.$loadingCon.style.width = '100%';
- document.getElementById('page_loading').style.display = 'none';
- }
- });
- loader.start();
动态加载/删除css文件以及图片预加载的更多相关文章
- webpack模块加载css文件及图片地址
webpack支持css文件加载并打包,只需安装相应加载器并在配置文件中配置 . 加载的css文件内容会与该模块里的js内容混合封装,这样做的好处是一个js文件包含了所有的css与js内容,有效减少了 ...
- js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...
- 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法 一.CSS和 ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法(转)
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- Javascript图片预加载详解 分类: JavaScript HTML+CSS 2015-05-29 11:01 768人阅读 评论(0) 收藏
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- 图片预加载 js css预加载
图片预加载, 效果非常明显, 特别是有多个图, 方法很简单 , 体验提升了不少 <div class="hidden"> <script type= ...
- 利用CSS、JavaScript及Ajax实现图片预加载的三大方法及优缺点分析
预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...
- javascript异步延时加载及判断是否已加载js/css文件
<html> <head> <script type="text/javascript"> /**======================= ...
随机推荐
- LightOj:1265-Island of Survival
Island of Survival Time Limit: 2 second(s) Memory Limit: 32 MB Program Description You are in a real ...
- python安装和eclipse安装及环境变量配置
非常好的技术文档,链接如下: http://jingyan.baidu.com/article/eb9f7b6da950c4869364e8f5.html 感谢作者的分享 http://python. ...
- Leetcode 473.火柴拼正方形
火柴拼正方形 还记得童话<卖火柴的小女孩>吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法.不能折断火柴,可以把火柴连接起来,并且每根火柴都要用到. 输入为 ...
- 项目报错 java lang illegalargumentexception error at 0 can t find referenced pointcut
出现error at ::0 can't find referenced pointcut...这样的错误原因是:如果你用的JDK版本是1.6的话,而引用的aspectjrt.jar是spring-2 ...
- 【瓜分5000元奖金】Wannafly挑战赛13
链接:https://www.nowcoder.com/acm/contest/80/A来源:牛客网 zzy的小号 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他 ...
- Good Bye 2017
太菜了啊,一不小心就goodbye rating了 A. New Year and Counting Cards time limit per test 1 second memory limit p ...
- iOS--------手势识别的详细使用:拖动、缩放、旋转、点击、手势依赖、自定义手势
1.UIGestureRecognizer介绍 手势识别在iOS上非常重要,手势操作移动设备的重要特征,极大的增加了移动设备使用便捷性. iOS系统在3.2以后,为方便开发这使用一些常用的手势,提供了 ...
- [luoguP1251] 餐巾计划问题(费用流)
传送门 模型 网络优化问题,用最小费用最大流解决. 实现 把每天分为二分图两个集合中的顶点Xi,Yi,建立附加源S汇T. 1.从S向每个Xi连一条容量为ri,费用为0的有向边. 2.从每个Yi向T连一 ...
- BZOJ2527 [Poi2011]Meteors 【整体二分 + 树状数组】
题目 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下 ...
- iOS-汉字排序
* 在IOS开发过程中,排序是我们经常遇到的问题,那么如何进行排序呢? * 在英文状态下,系统中有直接可以调用的方法. 例如:对数组[sss, aaa, bbb, ppp]进行排序,我们可以直接 ...