为什么jQuery在我自己包含它之后"重新加载"(通过Ajax)?

Obi*_*obi 12 jquery

我在网页上看到一些奇怪的行为......我使用常规脚本标签包含了jQuery(和jQuery UI).当页面加载时,我看到文件已加载(来自本地浏览器缓存,因为文件上有远期的Expires头文件).

但是,似乎jQuery本身会启动一个新的网络请求来再次获取自己,包括一个随机参数值,导致文件下载(即不使用缓存版本).

Chrome网络标签中的屏幕截图:

jQuery加载自己......?

这很奇怪......这里发生了什么?

更新:触发此行为的代码如下:

   $(window).load(function() {
     $("#t20ContentRightWrapper").toggle("slide", { direction: "right" }, 400);
   });
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为此,则"双重加载"消失:

   $(window).load(function() {
       $("#t20ContentRightWrapper").toggle("fade", 400);
   });
Run Code Online (Sandbox Code Playgroud)

所以基本上,当我使用"幻灯片"动画时,jQuery和jQuery UI会重新加载额外的网络请求,而使用"淡入淡出"动画则不会.

我想使用"幻灯片"动画,所以我需要知道这里发生了什么......!

更新2:这是一个屏幕截图,显示了将鼠标悬停在Chrome中的"Initiator"脚本上时的调用堆栈:

详情

小智 0

你检查过回调的内容吗?我知道这听起来很明显,但是您确定 jquery 库不包含在从 ajax 回调返回的 html 中吗?这可能是它加载两次的最可能原因。检查回调响应并查看是否从那里加载它。