3

有时我加载页面的 jquery 调用需要很长时间(大约 30 多秒),有时它会像预期的那样快速加载。我尝试在 jsfiddle 中重新创建问题,因为实际页面有很多代码。但是,我根本无法让它在 jsfiddle 中工作。这是 jsfiddle 的链接:http: //jsfiddle.net/VtTXv/

这是代码:

<span id="html_currentthread" style="background-color:blue;" hidden>f</span>
<span class="Row_0">fdas<span>

<script>
$(document).ready(function () {
    center_currentthread3 = $(window).width() / 2;    
    $(".Row_0").on('click', function () {
                            $('#html_currentthread').animate({height: '600px', width: '600px', left: center_currentthread3+'px', opacity: '1'},700).css('z-index','60');
                                $('#html_currentthread').show();
                                $('#html_currentthread').load('http://www.google.com');

                            });
});
    </script>

更新:我已经确认,当我让页面处于空闲状态而不是在该菜单中的任何其他加载页面上(即在没有选择任何内容的页面上)时,页面加载速度很快。如果我尝试加载另一个并且几分钟没有过去(可能大约 1-2 分钟,最多 3 分钟),加载需要很长时间(通常大约 30 多秒)。我现在认为这是服务器问题而不是代码问题。这是一个 WAMP 服务器(运行 Apache 服务器)。这就像一个反向空闲,它在空闲一段时间后工作,菜单上的任何页面都没有打开。

4

1 回答 1

2

当我切换到 JQuery 1.9 时,我在你的小提琴中收到了这条消息:

XMLHttpRequest 无法加载http://www.google.nl/。Access-Control-Allow-Origin 不允许来源 http://fiddle.jshell.net 。

出于某种原因,JQuery 1.10 不会生成此消息,但我认为问题是相同的:您遇到了(该)同源策略,该策略不允许您向其他域发出 AJAX 请求。

至少,这是你小提琴中的问题。它没有解释为什么你本地机器上得到结果。在那里,您可能也确实在 AJAX 请求中使用了相同的本地计算机。在这种情况下,您不会受到政策的困扰。

减速的原因?谁能告诉。也许...

  • 服务器请求需要很长时间(缓慢的 PHP 脚本)
  • 您正在运行其他占用 CPU 资源的进程
  • 您的 Web 服务器会杀死空闲的工作进程,当您执行请求时必须重新启动它们
  • Chrome 一次只会对同一服务器执行两个请求,并将其他请求排队,使它们看起来更慢
  • ...
于 2013-08-10T22:51:37.677 回答