在某些情况下Javascript无法正确加载

时间:2014-04-25 16:24:45

标签: javascript jquery apache https

我们有一个带有jQuery和Javascript的网站(使用HTTPS)。我们注意到在某些情况下Javascript根本不会加载。在控制台中,它只是打印出一些JS错误(未定义),但我无法告诉它,因为没有包含js文件或某处存在语法错误。

当我使用一些访客互联网时(在斯坦福大学和埃默里大学尝试了客人Wifi)。有时它甚至会发生在我办公室里,并且在10分钟内再次没问题。它只发生在一些计算机以及办公室(所有MAC OSX w / safari),其中一些很好。除非我在一些客人的无线网络下,否则它就像是完全随意的。

原因可能是什么?

最佳, 千斤顶


编辑: 有人觉得它太棒了,抱歉这个问题但是我尽力描述这个问题。这是以随机的方式发生的,并且当它发生时刷新页面不会得到修复。并且所有javascript文件都以https方式包含。

编辑: 我注意到在某些情况下,我将函数定义为之后被调用的位置。这可能是原因吗?

3 个答案:

答案 0 :(得分:0)

您需要使用支持https的Jquery CDN,或将代码放在您自己的站点/服务器上并将其包含在您的域中。这里有两个可以在ssl上运行的例子。

<script type="text/javascript" 
    src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

我一般都认为google库是一个cdn,它取决于你。

<script type="text/javascript" 
        src="https://mysite.com/static/js/jquery.min.js"></script>

如果您不想信任Google,则可以自行部署。

答案 1 :(得分:0)

我见过很多人都退出协议,以便自动使用当前的协议:

<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js'></script>

答案 2 :(得分:0)

我想补充一点,这可能不是100%的解决方案。经过多次测试后,我仍然看到我的至少一个js文件没有加载。我在网站上托管我的所有js文件,这让我觉得将所有内容从CDN加载可能是最好的选择。

我还在页面本身中包含了所有特定于站点的js代码,而不是尝试加载另一个js文件。

-

只是为了让您知道,我在其中一个网站上遇到了同样的问题。整个网站运行在https下,偶尔当我访问我的一个页面时,无论出于何种原因,javascript文件都无法加载。我认为这是因为https确实会降低整体连接速度。

以下是我解决问题的方法:

  1. 将所有js文件放在结束正文标记之前。
  2. 从支持https的可靠CDN加载所有主要js文件(其他人提到了Google等CDN)。
  3. 也许从CDN加载脚本并将行放在页面底部的组合将有助于确保所有内容都正确加载。

    另一个建议可能是将您的所有网站js文件合并到一个文件中,以便减少并发的js请求。

    我认为所有这些问题都源于与https相关的连接速度慢以及连接速度不佳。