2013-03-22 60 views
1

我有几个脚本在我的应用程序的所有html页面中都很常见。调用这个文件commonfunctions.js。每个html页面都会在您移动应用程序时加载它,并追加此js文件的最后修改日期(从服务器获取)。 Firebug每次将文件添加到加载的脚本列表以及eval/seq /#(其中#是由于某种原因,此文件从7开始加载的次数)。举例来说,如果我有3页称为one.html,two.html和three.html各有这行代码:为什么萤火虫多次显示相同的脚本

<script type="text/javascript" src="commonfunctions.js?mod=11/33/2012"></script> 

如果我是从one.html-> two.html-去> one.html-> three.html,萤火虫将列出加载脚本:

commonfunctions.js MOD = 11 /二千○十二分之三十三
commonfunctions.js MOD = 11/33/2012/EVAL?/seq/7
commonfunctions.js?mod = 11/33/2012/eval/seq/8
commonfunctions.js?mod = 11/33/2012/eval/seq/9

等等我多访问了三页。

为什么会发生这种情况,是否有办法阻止它?我读到它可能是因为eval()或event属性导致不知道url,firebug会自己创建url;但是,这些脚本正在通过常规标签加载。

我很担心,因为我不确定这是否意味着浏览器已经编译并正在执行或存储相同脚本的多个副本 - 在这两种情况下都非常浪费。

+0

你确定控制台清除了前一页的结果,当你进入下一页等等。 – adeneo 2013-03-22 20:30:40

+0

@adeneo我不确定你的意思。控制台只显示每个页面的ajax请求。脚本菜单就是我去看看那些蹩脚的脚本的地方。当我转到下一页时,上一页的加载的commonfunctions.js脚本仍然存在,并且添加了新脚本。 – 2013-03-22 20:37:42

回答

0

该脚本可能已通过脚本标记加载,但commonfunctions.js中的某处已拨打eval()。或者三个,显然。

+0

我刚才看了一下,在commonfunctions.js中有9个调用eval。但是,不加载新脚本。这可能是每个新访问包含commonfunctions.js的页面为firebug添加新脚本的原因吗? – 2013-03-22 20:43:23

+0

你是对的。一旦这些事件中的一个被称为Firebug,就会显示一个新脚本。完全不用担心。 – zeroflagL 2013-03-22 20:50:04