2014-05-01 56 views
1

我自己開發了一個Ember.js應用程序,並開始跟蹤腳本如何加載,只注意到如果ember.js核心和handlebars.js被縮小到同一個文件中,我的application.js將加載兩次。Ember.js應用程序爲什麼加載兩次?

爲什麼?

Here's a picture about the network panel(Chrome, wow64)

難道是ember.js的一個奇怪的行爲,並只加載「幾乎兩次」或負載兩次是真的嗎?

AngularJS是一樣的,但我得到了這種行爲的答案,它只是'虛擬',這意味着js不會再次加載,但角度之前可以初始化它必須告訴瀏覽器'我已經加載',它只有這樣才能這樣。

那麼這是一樣的嗎?

在此先感謝您的回覆, 祝您有美好的一天!

回答

1

這與Ember.js(或Angular,無論如何)沒有任何關係。這只是HTTP的工作方式。您的瀏覽器嘗試加載它已經裝載了If-Modified-Since頭或其他一些標題,使GET要求「有條件」的資源。 (請參閱http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

如果您在網絡顯示中注意到,HTTP響應(狀態)爲304,表示「未修改」 - 因此不會傳輸內容。但是,請求/響應週期並花費一定的時間,所以你應該看看,看看爲什麼你所請求的相同資源的兩倍......

+0

所以它只是看起來像負荷兩次?其中之一隻是從緩存讀取?謝謝,這是我的想法一個:) –

+0

最後,它被從緩存中,但檢查服務器,以查看是否有新版本後,只有一讀。正如我所說,你應該弄清楚爲什麼被請求兩次...... –

相關問題