2017-04-19 316 views
0

当我第一次登陆主页时,提琴手显示iframe站点加载一次。当我F5或点击回到页面它似乎加载该网站两次。为什么我的Iframe加载其页面两次?

提琴手显示第一次有一个符号表示它被中止。

Iframe loads page twice - is this really an issue?

解释点图像

  1. 上的第一次加载页面的iframe页面加载罚款(在这种情况下,它的ASP页面,但它发生非ASP页)。
  2. 在F5页面刷新这是我的问题;页面加载,但它看起来像被中止。我试图找出原因。它甚至是一个问题?它会导致额外的资源在客户端/服务器上使用吗?
  3. 页面加载正常。

我的IFrame看起来是这样的:

<div class="IframeContainer"> 
    <iframe class="IframeContent" ng-src="{{::trustSrc(ActiveLink)}}" iframe-onload="iframeLoadedCallBack()" frameborder="0" scrolling="no"></iframe> 
</div> 

我已经在ActiveLink一个观察者,它只是改变了从不确定到确定一次。 但是我已经将日志记录添加到函数trustSrc中,它似乎被调用3次。我不知道为什么。

的iframe追加为app.js中的模板URL这样:

.state('Retrieved', { 
     url: '/Retrieved', 
     templateUrl: 'Scripts/AngularJs/Views/_GenericIframeContainer.html' 
    }) 

我认为因为内嵌框架采用NG-SRC变量经过消化周期,并成为评估。这个评估是否会导致iframe重新加载?

+0

这将有助于您编辑您的问题并添加代码 – mlegg

回答

0

修正是为了改变我们使用的角JS(版本1.4.9)文件。围绕线20365,我们更换了以下

attr.$set(name, value); 

(这增加了10ms的延迟)

setTimeout(function() { 
    attr.$set(name, value); 
}, 10); 

我们也改变了

if (msie && propName) element.prop(propName, attr[name]); 

if (msie && propName && element[0].tagName !== 'IFRAME') element.prop(propName, attr[name]); 

所以它可能是一个IE唯一的问题。相同的代码是在AngularJS 1.6.4

这似乎是问题在这里解决:https://github.com/angular/angular.js/issues/9843但修复程序没有到位IMO。

+0

现在解决方案的一个问题是我想知道何时加载iframe页面。 iframe-onload =“iframeLoadedCallBack()”被调用两次。有趣的是,提琴手只在Iframe中显示一个对所请求页面的调用。 – Sniipe

相关问题