Вопрос эффективности в jQuery - PullRequest
1 голос
/ 12 июня 2011

У меня есть эта HTML-структура на странице, и запрос AJAX возвращает такую ​​же структуру:

<div id="feeds">
    <div class="items">
        <div class="feedClass">
            content
        </div>
        <div class="feedClass">
            content
        </div>
        <div class="feedClass">
            content
        </div>
    </div>
    <div class="pager">
        content
    </div>
    <div class="keys">
        content
    </div>
</div>

Содержимое данных такое же, как указано выше.

Как заменить этот JavaScriptкод с более эффективным кодом для добавления элементов в элементах к текущим элементам и замены содержимого в пейджере и ключах.У меня есть это до сих пор, data это то, что возвращается запросом AJAX:

var itemsFirstChildTag = $(id + " .items:first-child").get(0).nodeName;

var id = "#feeds";

$(".items", id).append($(id + " .items > "+itemsFirstChildTag, "<div>"+data+"</div>"));

$(".keys", id).replaceWith($(id + ".keys", "<div>"+data+"</div>"));

$(".pager", id).replaceWith($(id + ".pager", "<div>"+data+"</div>"));

Ответы [ 2 ]

0 голосов
/ 13 сентября 2011

var feeds = document.getElementById ("каналы"); var feeddivs = feeds.getElementsByTagName ("div"); var len = feeddivs.length; для (var i = 0; i

}

0 голосов
/ 12 сентября 2011

Я бы попробовал использовать лучший способ связи, такой как JSON или XML. Одно это сделало бы весь этот запрос AJAX ОЧЕНЬ более эффективным. Идея заключается в том, что вы можете добавить data, который вы возвращаете, в соответствующее местоположение, вам не нужно возвращать какой-либо HTML.

$.ajax({
  type: 'post',
  url: 'some-script.php',
  success: function( response ){
      //neat jquery element creation
      var newFeed = $("div", {
         "class" : "feedClass",
         "text" : response.newText
      });

      $(".items").append(newFeed);
      $(".keys").text(response.newText);
  }
});

Если вам нужно изменить текст элемента, вы можете использовать .text () .

Получить:

$(".some-class").text();

Установка:

$(".some-class").text("Some Text");

Если вам нужно изменить HTML-элемент, используйте .html ()

GET / SET аналогично $.text()


Короче говоря, я бы определенно рекомендовал прочитать столько документации по jQuery , сколько вы можете, там есть много интересных трюков / демонстраций.

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