2017-04-19 46 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

相關問題