Частичное обновление элементов с помощью jQuery - PullRequest
0 голосов
/ 30 ноября 2011

В какой-то момент моего сайта он получает "оценки" ("notas" на португальском языке) от пользователей мобильных телефонов.Поэтому при получении оценки необходимо обновить пару элементов в этой точке сайта.Я пытаюсь использовать jQuery для обновления, но он не работает.Вот что я делаю:

<script type="text/javascript">  
  $(document).ready(function() {
    setInterval(function() { refresh() }, 3000);
  });

  function refresh() {    
    $.get("notas", function(data) {
      var chart = $(data).find('img').attr('src');
      var conclusion = $(data).find("#conclusion").html();

      $("img").attr('src', char);
      $("#conclusion").html(conclusion);      
    });    
  }
</script>

Итак, когда добавляется оценка, этот ajax get возвращает HTML-код всего набора, так что я вытаскиваю из этой пары полей html и пытаюсь заменить свой текущийстр.Но в браузере ничего не происходит, обновлений нет.

Когда я визуализирую исходный код с помощью "ctrl + U", (после добавления новой оценки) выглядит нормально, но не отображается так.Я предполагаю, что не сообщаю браузеру, что на сервере произошли некоторые изменения.

Извините за большой пост, есть мысли, что мне не хватает?

Спасибо!

1 Ответ

0 голосов
/ 30 ноября 2011

Вы не можете посмотреть на источник вашего HTML-документа, чтобы увидеть динамические изменения, которые вы делаете с помощью jQuery. Вам нужен инструмент проверки DOM, такой как FireBug или Chrome Dev. Инструменты.

Некоторые вещи, которые я заметил:

  1. Является ли "notas" правильным URL для вашего серверного скрипта?
  2. Похоже, что в ответе вашего сервера есть элемент с идентификатором «заключение», и у вас уже есть тот же идентификатор на странице. Это не хорошо, каждый идентификатор должен быть уникальным.
  3. У вас есть строка: $("img").attr('src', char);, которая, похоже, ничего не делает для DOM, создаваемое вами изображение нигде не добавляется на страницу ...
...