相关疑难解决方法(0)

我应该在哪里将<script>标记放在HTML标记中?

在JavaScript文档中嵌入JavaScript时,放置<script>标记和包含JavaScript 的适当位置在哪里?我似乎记得你不应该把它们放在这个<head>部分中,但放在该部分的开头<body>也是不好的,因为在完全呈现页面之前必须解析JavaScript(或类似的东西).这似乎将该部分的末尾<body>作为<script>标记的逻辑位置.

所以,在这里把正确的地方<script>标记?

(这个问题引用了这个问题,其中建议JavaScript函数调用应该从<a>标签移动到<script>标签.我专门使用jQuery,但更一般的答案也是合适的.)

html javascript jquery

1392
推荐指数
11
解决办法
53万
查看次数

如何在设置变量之前延迟document.ready?

我在IFRAME中进行QUnit测试,并有一个递归JavaScript函数,在启动QUnit之前将所有脚本从父页面加载到IFRAME中.这非常有效.我的问题是我们的一些脚本使用document.ready来开始工作.

像这样的东西:

$(document).ready(function () {
    // blah
});
Run Code Online (Sandbox Code Playgroud)

做他们的工作.我更愿意不更改生产代码只是为了考虑测试,我不希望这些生产脚本认为IFRAME文档是"准备好",直到加载每个脚本.

我怎么能延迟"document.ready"本身?

这是我的伪代码给你一个例子来工作:

scripts[0] = "/foo/bar.js";
scripts[1] = "/blah/blah.js";

function RecursiveScriptStart(){
    // I want to set document.ready = false right here!
    if(scripts.length == 0) {
        QUnitStart();
        return;
    }
    RecursiveScriptLoader(0, scripts);
}

function RecursiveScriptLoader(currentScriptID, scripts) {
    $.getScript(scripts[currentScriptID], function () {
        if (currentScriptID == (scripts.length - 1)) {
            QUnitStart();
        }
        else {
            RecursiveScriptLoader(currentScriptID + 1, scripts);
        }
    });
}


function QUnitStart() {
        // I want to set document.ready = true right here!
        QUnit.stop();
        QUnit.start(); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery qunit

13
推荐指数
2
解决办法
1万
查看次数

多个延迟加载实例| Java脚本

我目前正在阅读有关推迟Javascript加载的文章:https : //developers.google.com/speed/docs/best-practices/payload#DeferLoadingJS

他们使用以下脚本:

<script type="text/javascript">

 // Add a script element as a child of the body
 function downloadJSAtOnload() {
 var element = document.createElement("script");
 element.src = "deferredfunctions.js";
 document.body.appendChild(element);
 }

 // Check for browser support of event handling capability
 if (window.addEventListener)
 window.addEventListener("load", downloadJSAtOnload, false);
 else if (window.attachEvent)
 window.attachEvent("onload", downloadJSAtOnload);
 else window.onload = downloadJSAtOnload;

</script>
Run Code Online (Sandbox Code Playgroud)

我目前有4个要“延迟”的独立Javascript文件

我将如何使用Google的示例代码来实现这一目标?

非常感谢您的指导。

javascript loading payload

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

标签 统计

javascript ×3

jquery ×2

html ×1

loading ×1

payload ×1

qunit ×1