jQuery load()需要很长时间

时间:2013-08-10 22:20:38

标签: jquery html

有时我的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服务器)。它就像一个倒退的空闲状态,它在闲置了一段时间后工作,菜单上的所有页面都没有打开。

1 个答案:

答案 0 :(得分:2)

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

  

XMLHttpRequest无法加载http://www.google.nl/。起源   {}不允许http://fiddle.jshell.net   访问控制允许来源。

由于某些原因,JQuery 1.10不会生成此消息,但我认为问题是相同的:您遇到了一个({)same origin policy,它不允许您向其他人发出AJAX请求域。

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

减速的原因?谁能说出来。也许......

  • 服务器请求需要很长时间(慢速PHP脚本)
  • 您正在运行其他正在运行的占用CPU功率的进程
  • 您的网络服务器会杀死闲置的工作进程,在您提出请求时必须再次启动它们
  • Chrome只会同时对同一台服务器执行两次请求,并会将其他请求排入队列,使其似乎更慢
  • ...