jQuery中的效率问题

时间:2011-06-12 06:43:27

标签: jquery ajax

我在页面中有这个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 :(得分:0)

我会尝试使用更好的通信方法,例如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 documentation,有很多巧妙的技巧/演示。

答案 1 :(得分:0)

var feeds = document.getElementById(&#34; feeds&#34;); var feeddivs = feeds.getElementsByTagName(&#34; div&#34;); var len = feeddivs.length; for(var i = 0; i

}