图片及js的预加载
2024-10-02 00:44:22
loadImage : function (url, dataObj, callback, errorCallback) {
var self = this;
var img = new Image(); //创建一个Image对象,实现图片的预下载
img.src = url;
if(img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
callback.call(img,dataObj);
return; // 直接返回,不用再处理onload事件
}
img.onload = function () { //图片下载完毕时异步调用callback函数。
callback.call(img,dataObj);//将回调函数的this替换为Image对象
};
if(typeof errorCallback === 'function'){
img.onerror = function () {
errorCallback.call(img,dataObj);
};
}
}
function loadScript(url, callback){
var script = document.createElement ("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" || script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function(){
callback();
};
}
script.src = url;
document.getElementsByTagName_r("head")[0].appendChild(script);//即插即执行
}
你可以在页面中动态加载很多JavaScript 文件,但要注意,浏览器不保证文件加载的顺序(修正:加载应该是异步同时加载,执行顺序是不确定的,很可能谁先加载完,先执行谁。)。所有主流浏
览器之中,只有Firefox 和Opera 保证脚本按照你指定的顺序执行。其他浏览器将按照服务器返回它们的次
序下载并运行不同的代码文件。你可以将下载操作串联在一起以保证他们的次序,如下:
loadScript("file1.js", function(){
loadScript("file2.js", function(){
loadScript("file3.js", function(){
alert("All files are loaded!");
});
});
});
javascript 动态加载按顺序加载运行 js
最新文章
- Jquery自定义插件之$.extend()、$.fn和$.fn.extend()
- pb将datawindow数据导出EXCEL
- Android-Lopper类的介绍(Handler背后的类)
- yum阿里云镜像源
- 移动Web与js定时器暂停或不准确计时的问题解决
- Java 线程池学习
- [006]为什么C++会被叫做是C++?
- mysqldump 备份原理8
- DEV中gridview常用属性的设置
- javsscript总结
- dedecms====phpcms 区别==[工作]
- bzoj1977次小生成树(重要)
- Android Service用法知识点的讲解
- Windows上使用Git管理文件
- js指定范围随机整数
- JSP—作用域
- mybatis逆向工程--自动生成实体代码(mybatis-generator)
- resin WED服务器初用遇到的问题和解决方法 java.lang.RuntimeException: java.net.SocketException: Unrecognized Windows Socke ts error: 0: JVM_Bind
- 使用自定义视图的AlertDialog
- PID控制算法的c语言实现十二 模糊PID的参数整定
热门文章
- 洛谷——P3128 [USACO15DEC]最大流Max Flow
- Storm新特性之Flux
- POS的一点杂笔
- Nginx和Nginx+的比較(下)
- POJ3171 Cleaning Shifts DP,区间覆盖最值
- 11、V4L2摄像头获取单幅图片测试程序
- 在此页上的 ActiveX 控件和本页上的其它部份的交互可能不安全
- VS2010制作dll
- win32 ag + xargs
- Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析