2013-08-10 6 views
3

Иногда мой вызов jquery для загрузки страницы занимает много времени (около 30 + секунд), и иногда она быстро загружается, как и предполагалось. Я попытался воссоздать проблему в jsfiddle, так как фактическая страница содержит много кода. Однако я не могу заставить его работать вообще в jsfiddle. Вот ссылка на jsfiddle: http://jsfiddle.net/VtTXv/jQuery load() занимает много времени

Вот код:

<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> 

Update: Я подтвердил, что страница загружается быстро, когда я пусть страница простаивать, а не на какой-либо другой загруженной страницы в это меню (т.е. на странице без выбора). Если я попытаюсь загрузить еще один и несколько минут не пройден (это может быть где-то около 1-2 минут, до 3), загрузка занимает много времени (обычно около 30 + секунд). Теперь я думаю, что это проблема с сервером, а не проблема с кодом. Это WAMP-сервер (работает сервер Apache). Это похоже на простаивание в обратном направлении, где он работает после определенного количества времени бездействия ни с одной из страниц в открытом меню.

+0

Возможно, сервер работает медленно? –

+0

На моем компьютере и на странице, загружаемой мной, загружается очень быстро, если я загружаю ее напрямую. – JVE999

+0

Что значит, что вы не можете заставить его работать? Как вы не можете воспроизвести его, или вы не можете заставить jsfiddle работать с вашим кодом? –

ответ

2

При переходе на JQuery 1.9, я получаю это сообщение в своей скрипке:

XMLHttpRequest не может загрузить http://www.google.nl/. Происхождение http://fiddle.jshell.net не допускается Access-Control-Allow-Origin.

почему JQuery 1,10 не генерирует это сообщение, но проблема, я думаю, что это то же самое: Вы работать в (с) same origin policy, который не позволяет делать AJAX запросы к другим доменам ,

По крайней мере, это проблема в вашей скрипке. Это не объясняет, почему вы do получите результаты на вашем локальном компьютере. Там вы, вероятно, использовали один и тот же локальный компьютер в запросе AJAX. В этом случае вы не обеспокоены политикой.

Причина замедления? Кто может сказать. Могу быть ...

  • запросов сервера занимает много времени (медленный PHP скрипт)
  • вы получили другие процессы, которые занимают мощность процессора
  • вашего веб-сервер убивает холостые рабочие процессы, запуская их еще раз, когда вы делаете ваших запросы
  • Chrome будет выполнять только два запрос на тот же сервер, на один раз и очередь других, делая их кажется медленнее
  • ...
+0

вы можете сделать ajax-вызов другим доменам, решать им. – sUP

+0

@sUP ваш браузер предотвращает это, хотя я думаю, что FireFox разрешает запросы, но не возвращает ответ.В любом случае, вы не можете прочитать ответ в свой элемент. Существуют исключения, такие как использование JSONP, но они также суммируются на странице, с которой я связан. – GolezTrol

+0

Не могли бы вы объяснить сервер, убивающий простаивающие рабочие процессы? Это приведет к рандомизированной 0-40-секундной задержке при загрузке страницы? – JVE999

Смежные вопросы