相关疑难解决方法(0)

什么是sleep()的JavaScript版本?

有没有sleep比使用以下pausecomp函数更好的方法来设计JavaScript (从这里开始)?

function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);
}
Run Code Online (Sandbox Code Playgroud)

这不是JavaScriptSleep的重复- 动作之间的延迟 ; 我希望在函数中间实现真正的睡眠,而不是在执行代码之前的延迟.

javascript sleep

2115
推荐指数
41
解决办法
241万
查看次数

试图在脚本标记上触发onload事件

我正在尝试按顺序加载一组脚本,但onload事件并没有为我开火.

    var scripts = [
        '//cdnjs.cloudflare.com/ajax/libs/less.js/1.3.3/less.min.js',
        '//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.min.js',
        MK.host+'/templates/templates.js'
    ];

    function loadScripts(scripts){
        var script = scripts.shift();
        var el = document.createElement('script');
        el.src = script;
        el.onload = function(script){
            console.log(script + ' loaded!');
            if (scripts.length) {
                loadScripts(scripts);
            }
            else {
                console.log('run app');
                MK.init();
            }
        };

        $body.append(el);
    }

    loadScripts(scripts);
Run Code Online (Sandbox Code Playgroud)

我猜想当使用jQuery将元素附加到DOM时,el.onload等本机事件不会触发.如果我使用原生,document.body.appendChild(el)那么它会按预期激发.

javascript jquery onload

89
推荐指数
2
解决办法
10万
查看次数

document.createElement("script")同步

是否可以.js同步调用文件然后立即使用它?

<script type="text/javascript">
    var head = document.getElementsByTagName('head').item(0);
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'http://mysite/my.js');
    head.appendChild(script);

    myFunction(); // Fails because it hasn't loaded from my.js yet.

    window.onload = function() {
        // Works most of the time but not all of the time.
        // Especially if my.js injects another script that contains myFunction().
        myFunction();
    };
</script>
Run Code Online (Sandbox Code Playgroud)

这是简化的.在我的实现中,createElement的东西在一个函数中.我想在函数中添加一些东西,可以在返回控件之前检查某个变量是否被实例化.但是,当我从另一个我无法控制的网站中包含js时,仍然存在一个问题.

思考?

编辑:

我现在已经接受了最好的答案,因为它为正在发生的事情提供了一个很好的解释.但如果有人对如何改进这一点有任何建议我会向他们开放.这是我想做的一个例子.

// Include() is a custom function to import js.
Include('my1.js');
Include('my2.js');

myFunc1('blarg');
myFunc2('bleet');
Run Code Online (Sandbox Code Playgroud)

我只是想从不必知道的内部太多,只能够说,保持"我希望用这个模块,现在我会使用一些代码吧."

javascript dom synchronous

73
推荐指数
6
解决办法
21万
查看次数

同步动态加载JavaScript

我正在使用模块模式,我想要做的事情之一就是动态地包含一个外部JavaScript文件,执行该文件,然后使用return { }我模块中文件中的函数/变量.

我无法弄清楚如何轻松地做到这一点.是否有任何标准方法来执行伪同步外部脚本加载?

function myModule() {
    var tag = document.createElement("script");
    tag.type = "text/javascript";
    tag.src = "http://some/script.js";
    document.getElementsByTagName('head')[0].appendChild(tag);

    //something should go here to ensure file is loaded before return is executed

    return {
        external: externalVariable 
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript

58
推荐指数
4
解决办法
6万
查看次数

标签 统计

javascript ×4

dom ×1

jquery ×1

onload ×1

sleep ×1

synchronous ×1