2013-04-27 83 views
1

我剛剛意識到我的應用程序的主要放緩。我使用模態對話框將我網站的其他頁面加載到彈出窗口中。直到最近這些加載非常快。最近他們花了很長時間,大約4秒。我做了一些分析,似乎我的JavaScript不是異步加載,每個人都等待,直到另一個已完成下載。javascript異步加載

enter image description here

這似乎是主要的放緩。每個JavaScript文件只是包含在像這樣加載頁面...

<script src="/js/jquery.ae.image.resize.min.js"></script> 
<script type="text/javascript" src="/js/jquery.raty.min.js"></script> 
<script type="text/javascript" src ="/js/entry.js"></script> 
<script type="text/javascript" src="/js/bjqs-1.3.min.js"></script> 

我有點定該由這些文件移動到顯示對話框中的頁面,但是這似乎是一個黑客,尤其是當他們被加載過去足夠快。此外,這不是動態JavaScript,所以它可以緩存,我認爲時間參數來自$.ajaxSetup({ cache: false });,但這不是最近的代碼添加。

+0

東西在你的代碼可能是防止文件抓取從緩存中通過js文件要求加入'_xxxxxx'?你應該解決它。 – Ejaz 2013-04-27 13:13:00

+0

我相信是從$ .ajaxSetup({cache:false});但那不是新代碼。新版本的jQuery可以以不同的方式處理嗎? – Lumpy 2013-04-27 13:16:48

+1

一個解決方案可能是加載來自不同域名的腳本 – 2013-04-27 13:17:07

回答

1

如果你想異步加載腳本,異步屬性幫助:

<script async="true" type="text/javascript" src ="/js/entry.js"></script> 
+0

這似乎並不能幫助異步執行而不加載腳本。 – Lumpy 2013-04-27 22:30:42

+0

http://davidwalsh.name/html5-async「每個異步腳本在完成下載之後和窗口的加載事件之前的第一個機會時執行。」 – Lumpy 2013-04-27 22:31:23