【问题标题】:Why is firebug showing the same script multiple times为什么萤火虫多次显示相同的脚本
【发布时间】:2013-03-22 20:26:39
【问题描述】:

我有一些脚本在我的应用程序的所有 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 开始,Firebug 会将加载的脚本列出为:

commonfunctions.js?mod=11/33/2012
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;但是,这些脚本是通过常规标签加载的。

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

【问题讨论】:

  • 当您进入下一页等时,您确定控制台会清除前一页的结果。
  • @adeneo 我不确定你的意思。控制台只显示每个页面的 ajax 请求。脚本菜单是我去看laoded脚本的地方。当我转到下一页时,上一页加载的 commonfunctions.js 脚本仍然存在,并添加了新的。

标签: javascript caching firebug


【解决方案1】:

该脚本可能已通过 script 标签加载,但在 commonfunctions.js 中的某处调用了eval()。或者三个,很明显。

【讨论】:

  • 我刚看了一下,commonfunctions.js 中有 9 个对 eval 的调用。但是没有加载新脚本。这可能是每次新访问包含 commonfunctions.js 的页面都会向 firebug 添加一个新脚本的原因吗?
  • 你是绝对正确的。一旦其中一个 eval 被调用,Firebug 就会显示一个新脚本。没什么好担心的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多