использование небольшой модели для проверки асинхронной обработки - PullRequest
0 голосов
/ 07 декабря 2011

Я получил много отличных инструкций по переполнению стека, особенно относительно моих слабых попыток включить асинхронную обработку в недавнее веб-приложение.Чтобы свести некоторые проблемы к минимуму, я создал очень маленькую страницу HTML / javascript, чтобы поиграть с getJSON и посмотреть на поведение, упомянутое jfriend00.Насколько я вижу, это легитимная программа, но, хотя IE9 запускает ее, FireFox генерирует некоторый текст, затем зависает / бесконечно зацикливается / что угодно, в то время как Chrome показывает только H1 (FireFox отказался это делать) и последнюю строку.Очевидно, что-то ужасно не так с этим кодом, и я этого не вижу.Как насчет тебя?

<!DOCTYPE html>
<html>
  <head>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
  </head>
  <body>
    <h1>testing 2</h1>
<script type="text/javascript">
  function buildTree() {
      $.getJSON('MurakiMaida.json', function(data) {
        document.write("how about here?<br>");
        $.each(data.person, function(i, xdata) {
    document.write(xdata.id + "<br>");
        });
    });
    document.write("<br>what are we doing here?");
    }
    buildTree();
  </script>
</body>
</html>

1 Ответ

0 голосов
/ 07 декабря 2011

document.write, вероятно, виновник.

Я не понимаю, что именно вы пытаетесь сделать, но document.write следует использовать только во время загрузки страницы. На самом деле, вероятно, лучше никогда не использовать его. *

Создайте <div id='foo'/> и напишите в него, например, $('#foo').append($("<div>"+xdata.id+"</div>")

document.write был способ использовать Javascript для добавления HTML к документу в те дни, когда существовал DOM. Он все еще существует для обратной совместимости, но его следует избегать.

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