首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面环境正在阻止angularjs引导

问页面环境正在阻止angularjs引导
EN

Stack Overflow用户
提问于 2018-12-21 23:59:37
回答 2查看 119关注 0票数 0

我的Angularjs1.5应用程序在实际页面的iFrame中的MS Dynamics 365环境中运行。

无论如何,看起来angularjs在等待来自Dynamics的所有JS操作完成,甚至在框架外(脚本加载等),只有在那时它才会引导实际的自己的应用程序。

这会导致许多性能加载问题。我理解它可能(不确定)是角度性质的等待所有的脚本,因为可能有一些与它的执行相关的东西。但如果该页面上有许多其他不相关的脚本,就会产生巨大的问题。

有没有办法说“嘿angular!等待脚本"jQuery.js,module1.js等等。”然后你被允许启动,因为那实际上是你所需要的全部“?

EN

回答 2

Stack Overflow用户

发布于 2018-12-27 20:51:20

只是把正确的事实放在上下文中,iframe是异步加载的,这意味着页面加载它的时候也会立即启动。现在,您可以手动控制iframe的加载行为,方法是使用创建iframe的Javascript代码将iframe加载到DOM中的时间延迟:

代码语言:javascript
复制
function createIframe() {
    let iframe = document.createElement("iframe");
    iframe.src = "<angularjs-app-url>";
    iframe.scrolling = "auto";
    iframe.frameborder = "0";
    iframe.width = "200px";
    iframe.height = "100px";
    document.getElementById("div-that-holds-the-iframe").appendChild(iframe);
}

然后,您可以在调用createIframe()函数之前检查是否加载了JS文件: jquery.js,module1.js:

代码语言:javascript
复制
window.onload = function() {
    if (window.jquery && module1){
        createIframe();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-12-28 00:20:49

创建一个加载iframe的脚本,然后在调用中添加属性defer:

代码语言:javascript
复制
<script src="yourscrypt.js" defer></script>

更多信息请访问:https://www.w3schools.com/tags/att_script_defer.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53887672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档