相关疑难解决方法(0)

如何有效地使用yepnope.js和$(document).ready()?

我一直在实现yepnope脚本加载器作为modernizr.js库的一部分.之后我成功地加载了jQuery以加载jQuery依赖脚本.我是异步加载资源的新手,所以对我来说这有点新鲜.我一直在四处寻找,但是下面没有太多运气.

我的问题是,在使用yepnope.js框架时,您对如何有效替换$(document).ready()的功能有何看法?

我的理论是在我的基础库中创建一个适当命名的函数,然后在我的页面上将该变量设置为包含我现有的$(document).ready()代码的匿名函数.在所有脚本加载到完整回调之后,yepnope将调用此变量.

你是否同意这是一个很好的方法,或者我是否完全以错误的方式接近这个?

(对于那些不知道的人,yepnope.js的异步性质意味着文档在yepnope加载器完成之前调用$或jQuery,抛出"$ is undefined"错误< - 如果错误请纠正我.)

第一个问题,希望它是一个好的.

javascript jquery document-ready asynchronous-loader yepnope

15
推荐指数
2
解决办法
7617
查看次数

Yepnope和"Proxy" - jQuery的ready()函数

我(非常)慢慢地获得了一个大型的静态文件站点,最新的所有最新好东西.我使用yepnope(与新的Modernizr.load打包)来处理异步依赖加载,同时我需要它与当前代码库向后兼容.

这要求我要么在yepnope()包装器中整个站点范围内的每个jQuery调用(在不久的将来要完成的任务太大),或者更有创意的解决方案是通过我自己的代理 jQuery的ready()功能,并延迟执行任何$代码,直到来自yepnope的回调准备好了...... ready()一旦yepnope测试满足jQuery的准备,jQuery的实际函数将成为处理程序.合理?

手头的问题:

我在这里制造灾难吗?这是一个合适的解决方法,我的短期问题是一个糟糕实施的网站意大利面条DOM中心代码?

更新#3

一种更经过深思熟虑的方法,也可以解释为匿名函数直接传递给jQuery的非就绪问题.这是尽可能少地保留$(function(){})调用和$(document).ready()调用功能的第三次尝试.

    (function( window, undefined ) {
    var jQuery = (function(fn) {
    if (typeof fn === 'function') {
        yepnope({
            test: window.jQuery.length,
            complete: function() {
                fn();
            }
        });
    }
    var jQuery = 
        _jQuery = window.jQuery,
        _$ = window.$;
    jQuery = jQuery.prototype = {
        constructor: jQuery,
        ready: function( fn ) {
            yepnope({
                test: window.jQuery.length,
                complete: function() {
                    fn();
                }
            });
        }
    }; …
Run Code Online (Sandbox Code Playgroud)

javascript jquery asynchronous

1
推荐指数
1
解决办法
1329
查看次数