JavaScript文件和Modernizr/yepnope的结构
Structure of JavaScript files and Modernizr/yepnope
我正在研究Modernizr和yepnope.js的整个异步脚本加载过程,我想知道如何调整应用程序的结构以使用异步脚本加载。
现在的结构类似于:
...
<head>
<script src=jquery.js></script>
<script src=plugin1.js></script>
<script src=plugin2.js></script>
<script src=plugin3.js></script>
<script src=global.js></script>
</head>
<body>
此代码位于header.php文件中,该文件在整个应用程序中为require
d。在文档正文部分(其他PHP文件),我可能有一些JavaScript文件,如下所示:
...
<script src=moduleA.js></script>
<script src=someScripts.js></script>
</html>
以下是moduleA.js和someScripts.js可能包含的内容的简化示例:
$(document).ready(function() {
$('.searchDate').myCoolPlugin({ /* some options */ });
});
还有一些Script.js:
$(document).ready(function() {
$('#departureDate, #arrivalDate').myCoolPlugin({ /* some options */ });
});
如果我使用的是Modernizr,我会在页面顶部删除其他插件脚本,在global.js中我会写:
Modernizr.load([
{
test: $.fn.myCoolPlugin,
nope: 'plugin1.js',
complete: function() {
$(document).ready(function() {
$('.filterDates').myCoolPlugin();
}
}
}
]);
如何保证myCoolPlugin已在moduleA.js和someScripts.js执行时加载?我意识到我可以用Modernizr.load()
将插件初始化封装在这些文件中,但这似乎是不必要的代码重复。
如果我正确理解了你的问题,那么你想在用Modernizr加载了必要的脚本后执行主体脚本。
你可以这样做:
// Header script
var race_won = false;
var load_body_script = function() {
race_won = true;
};
Modernizr.load([
{
test: ..your condition..,
yep: ..test success..,
nope: ..test fail..,
complete: function() {
$(document).ready(function() {
$('.filterDates').myCoolPlugin();
load_body_script();
}
}
}
]);
// Body script
var body_script = function() {
// .. your code here ..
}
if (race_won) {
body_script();
}
else {
load_body_script = body_script;
}
相关文章:
- 更改JSON对象的结构
- 角度控制器结构
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 使用递归属性迭代保留属性结构
- 如何将我的json结构转换为C3.js所需的列结构
- 嵌套对象结构
- Redux应用程序结构-在哪里放置服务/业务逻辑
- 用于视频类型的MongoDB结构's
- javascript和php中的pancard结构验证
- 如何在砖石结构中订购DOM
- 如何解析结构不良的 html 代码
- 访问嵌套函数结构中的JavaScript父函数变量
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- 从json对象聚集数据并创建层次结构
- 在我的目录结构中,将单元测试助手源文件放在哪里
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- Html5-使用SVG路径绘制的组织层次结构在左手边被剪裁
- 布局/结构建议
- 有没有一种方法可以用YepNope.js为脚本提供动态名称
- JavaScript文件和Modernizr/yepnope的结构