2013-04-27 168 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