页面重新加载后未定义$

时间:2016-10-10 07:48:38

标签: jquery

我在页面中使用jQuery。 我通过GoogleApis CDN从头部调用脚本。 在我的页面末尾我使用

$(document).ready(function () {

   // code
   //
   // do something
   // 


   //
   setInterval(function() { location.reload(true); }, 40000);

 });

问题是在页面刷新后很多次我收到错误:

$ is not defined 

on document.ready line

并且脚本停止。

由于某种原因,头部中的jquery未加载并抛出错误。 仅当页面通过javascript location.reload(true)方法加载时才会发生这种情况。

为什么呢?

该页面位于iframe中。 但如果直接调用它也会发生错误。

1 个答案:

答案 0 :(得分:0)

当您使用 true 撰写location.reload(true);时,每次页面重新加载时,浏览器都会从服务器中显示当前页面。这也意味着没有缓存句柄。

在这种情况下,我建议验证所有页面都已加载:

var allLoaded = setInterval(function() {
  if (/loaded|complete/.test(document.readyState)) {
    clearInterval(allLoaded);  // stop the interval
    callYourInitFuction();   // the story start here
  }
}, 10);

使用这个senario,当你的所有脚本都到位后,你就可以继续了。