как отлаживать JavaScript на Chrome - PullRequest
2 голосов
/ 13 июня 2011

У меня странная проблема, которая иногда приводит к сбою jquery.load в chrome. Я не буду беспокоить вас, ребята, деталями, я просто ищу указательную руку, как я могу отладить такую ​​проблему?

Я подумал, может быть, firebug мог бы помочь, но проблема возникает только в Chrome (даже работает в IE).

Я делаю что-то вроде:

$("#contentid").html("Plz wait.");
$("#contentid").load(url);
$("#contentid").show();

Я получаю только "Plz wait" на #contentid, и я вижу, как вызывается URL, проверяю его вручную и вижу, что он успешен.

UPDATE2:

поэтому я изменил загрузку вызовов в соответствии с предложениями

$('#conentid').load(url, function(response, status, xhr){
  alert('Load was performed. url:' + url);
  if (status == "error") 
  {
    alert("text: " + xhr.statusText);
    alert("readyState: "+xhr.readyState+"\nstatus: " + xhr.status);
        alert("responseText: "+xhr.responseText);
  }
  else
  {
      $("#conentid").show(); 
  }
});

Я получаю статус == «ошибка» при возникновении ошибок.

xhr.statusText: 0

xhr.readyState: 4

xhr.statusText и xhr.responseText пусты

есть идеи почему? что это значит?

URL работает вручную. и эта ошибка происходит только на Chrome, и только иногда

Ответы [ 2 ]

4 голосов
/ 13 июня 2011

Chrome на самом деле имеет довольно приятные инструменты для разработчиков.Нажмите на значок гаечного ключа, выберите в меню инструменты разработчика.

В этом конкретном случае я готов поспорить, что шоу вызывается до завершения загрузки - загрузка происходит асинхронно.Установите обработчик событий для "on load" on #contentid и выполните показ в этом.

Update

На самом деле, есть лучший способ сделать это ;поместите ваш show в функцию обратного вызова для функции load:

$('#conentid').load('ajax/test.html', function() {
  alert('Load was performed.');
  $('#contentid').show();
});

Другое обновление

Хорошо, состояние готовности 4 указывает, что XmlHTTPRequest завершен нормально,Теперь есть одна двусмысленность: xhr.statusText 0 или он пустой?Какие результаты вы видите из этого кода (включая код ошибки) в другом браузере?

Если он работает на Firefox и работает иногда только на Chrome, у вас может быть настоящая ошибка Chrome.

0 голосов
/ 19 июня 2011

Возможно, у кого-то еще может быть объяснение этому ответу, но проблема была в следующем:

У меня был base href TAG (<base href="http://domain.com/" />)

Естьнекоторые ссылки на проблемы с использованием jquery + base href там.Я понятия не имею, почему, , но удаление этой строки исправило все .спасибо за вашу помощь, я изучил некоторые советы по отладке в сети \ ajax в процессе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...