首页 教程 API文档

异步文件加载模块

2015-09-10 10:35:09

属性


依赖模型 events
使用频率
复杂程度
成员类型 静态模块

描述


Std.loader模块的工作的对指定url地址的文件进行载入,是一个通用文件加载器,用于加载第三方外部文件,例如,js,css,图片等.

Std.loader模块可以加载任何类型的文件,并且支持并列或顺序方式加载.

通过Std.loader模块加载的文件将会被浏览器缓存起来,所以同时还能当作文件预加载器使用.

以下格式的文件可以支持跨域加载:


"js json css png gif jpg jpeg bmp img tiff ico"
        
注意: 在部分低版本浏览器下跨域加载的时候,如果远程返回了404等错误,Std.loader将无法判断是否加载失败,该问题无法被修复

当直接使用 Std.loader方法本身的时候,内部会创建一个新的Std.loader模块实例对象,并且执行其成员方法load,将参数作为load方法的参数传递,然后将其创建的实例对象作为返回值返回. 当Std.loader没有使用new创建的时候,入口函数就同等于如下的代码:


function(){
    var loader = new Std_loader;
    return loader.load.apply(loader,arguments);
}
    

通常情况下是使用 new Std.loader 方法来创建实例对象,这种方式不会有任何默认行为.

还有一点你需要知道,也就是当载入的文件是一个js文件的时候,这个js文件将会被执行,如果载入的是一个css文件的时候,这个css文件也会被载入, 如果载入的文件是一个sbs文件的时候,这个sbs文件会被Std.sbs模块解析并且装载.

成员列表


方法名称 成员类型 描述
::css static 载入css文件
::js static 载入js文件
::image static 载入图片文件
length public 当前loader队列长度
success protected loader载入成功的数量
error protected loader载入失败的数量
loading protected loader正在载入中的数量
status protected 当前loader状态
require public 请求文件载入
basePath public loader基础文件路径
load public 载入文件
loadQueue public 载入文件队列
loadFiles public 载入多个文件
append public 添加新的文件载入任务
remove public 删除文件载入任务
clear public 清空loader

语法



new Std.loader();
new Std.loader(String basePath);
        

参数


名称 类型 描述
basePath String 当载入文件的时候,如果文件不是一个http开头的绝对路径,该值就会作为基础路径对url进行转换,默认为空.

事件


名称 回调参数 描述
progress
类型 描述
Object 任务的相关属性
Boolean 任务是否执行成功,如果成功则为true,否则为false
每完成一次载入任务都会触发的事件,无论载入成功还是载入失败.
success
类型 描述
Object 任务的相关属性
当一个文件载入成功之后,该事件将会被触发.
success
类型 描述
Object 任务的相关属性
当一个文件载入失败之后,该事件将会被触发.
complete 当所有任务都请求完成之后,该事件将会被触发.

返回值


Std.loader模块实例对象

相关例子


载入1个文件


var loader = new Std.loader();

loader.load("/1.js",function(data){
    alert(data.status)
});
        

同时载入2个文件


var loader = new Std.loader();

loader.loadFiles(["/1.js","/2.js"],function(data){
    console.log(data)
});
        

顺序方式载入2个文件,第一个载入完成再载入第二个


var loader = new Std.loader();

loader.loadQueue(["/1.js","/2.js"],function(data){
    console.log(data)
});
        

同时载入 a.js b.js 顺序载入,a1.js a2.js a3.js


var loader = new Std.loader();

loader.loadFiles(["/a.js","/b.js",["/a1.js","/a2.js","/a3.js"]],function(data){
    console.log(data)
});