属性
依赖模型 |
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 |
|
当一个文件载入成功之后,该事件将会被触发.
|
success |
|
当一个文件载入失败之后,该事件将会被触发.
|
complete |
无 |
当所有任务都请求完成之后,该事件将会被触发. |
相关例子
载入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)
});