php js顺序执行,phpwind的JS加载机制:延时加载、按需加载、并行加载、顺序执行 - wind.js [分析中...]...

phpwind的 wind.js 是基于 head.js 开发而成的。

HeadJS的最大特点就是并行加载但是顺序执行,这样加快了加载速度,但却不会打乱依赖关系。详细介绍请看:http://headjs.com/

而phpwind的 wind.js 则是在其基础上增加了 按需加载 + 延时加载 ,因为按需加载,但是不是在页面加载的时候就加载了,而是事件发送的时候有需求的时候才去加载,比如某个页面有弹窗的功能,弹窗的JS和CSS不是在页面打开的时候就加载的,而是在点击按钮打开弹窗的时候才去加载。也不知道这样说(按需、延时)准不准确,也就是“需要时才去请求并且调用”。

通过 Wind.use 来对需要调用的资源进行延时加载。

一般传入资源的别名(别名在wind.js初始化设置)和回调函数,如下:

Wind.use("artDialog", function () {

//...

});

Wind.use('validate', 'ajaxForm', 'artDialog', function () {

//...

})

查看 Wind.use 的代码:

//通过别名来加载各个脚本文件

Wind.use = function() {

var args = arguments,len = args.length;

for( var i = 0;i < len;i++ ) {

if(typeof args[i] === 'string' && alias[args[i]]) {

args[i] = alias[args[i]];

}

}

Wind.js.apply(null,args);

};

但是这里的 Wind.js.apply(null,args) 是哪来的呢?原来是调用的前面的 HeadJS 里面的 api.js,也就是:

api.js = api.load;//但是Wind是如何“成为”api的呢?我还不明白

虽然在HeadJS里面有:

/*** public API ***/

headVar = win.head_conf && win.head_conf.head || "Wind",

api = win[headVar] = (win[headVar] || function () { api.ready.apply(null, arguments); }),

实际使用的时候打印该api,显示的是 function () { api.ready.apply(null, arguments); }

好绕啊。。。不管怎样,我都无法把 Wind.js 是如调用了 api.load 这块连接起来。跳过这块,往下看:

//先看异步加载的时候api.load

api.load = function () {

///

/// INFO: use cases

/// head.load("http://domain.com/file.js","http://domain.com/file.js", callBack)

/// head.load({ label1: "http://domain.com/file.js" }, { label2: "http://domain.com/file.js" }, callBack)

///

var args = arguments,

callback = args[args.length - 1],

items = {};

if (!isFunction(callback)) {

callback = null;

}

each(args, function (item, i) {

if (item !== callback) {

item = getAsset(item);

items[item.name] = item;

load(item, callback && i === args.length - 2 ? function () {

if (allLoaded(items)) {

one(callback);

}

} : null);

}

});

return api;

};

需要调用的js脚本和回调一起传入api.load(),但是回调函数需要作为最后一个参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHPWind 8.3是一款开源的PHP社区建站系统,其后台管理系统有许多亮点和功能升级,下面是详细的图文解析: 1. 登录界面升级 PHPWind 8.3后台登录界面进行了升级,采用了简洁大气的设计风格,同时可以选择记住登录状态,方便用户下次直接登录。 ![登录界面升级](https://img-blog.csdnimg.cn/20210716143613705.png) 2. 新增安全心 为了保障用户的账户安全,PHPWind 8.3后台新增了安全心,包括登录日志、操作记录、IP限制等功能,可以有效地防止账户被盗或非法操作。 ![安全心](https://img-blog.csdnimg.cn/20210716143627417.png) 3. 优化后台导航 PHPWind 8.3后台的导航进行了优化,采用了全新的设计风格,更加美观、清晰、易于操作。 ![后台导航优化](https://img-blog.csdnimg.cn/20210716143646358.png) 4. 新增应用PHPWind 8.3后台新增了应用心,用户可以根据要自由选择安装或卸载各种应用程序,从而更好地满足网站的求。 ![应用心](https://img-blog.csdnimg.cn/2021071614370082.png) 5. 优化任务PHPWind 8.3后台的任务心进行了优化,新增了更多的任务选项,用户可以根据自己的求设置任务,从而更好地管理网站。 ![任务心优化](https://img-blog.csdnimg.cn/2021071614372082.png) 6. 新增全站搜索 PHPWind 8.3后台新增了全站搜索功能,用户可以通过关键字搜索网站的各种内容,从而更加方便快捷地找到所的信息。 ![全站搜索](https://img-blog.csdnimg.cn/2021071614373716.png) 7. 优化数据统计 PHPWind 8.3后台的数据统计进行了优化,新增了更多的数据分析选项,用户可以根据要查看网站的各种数据变化情况,从而更好地进行网站管理和优化。 ![数据统计优化](https://img-blog.csdnimg.cn/20210716143753766.png) 综上所述,PHPWind 8.3后台管理系统的亮点和功能升级非常突出,可以为用户提供更加方便快捷、安全可靠的网站管理体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值