如何解决jQuery中的效率问题
| 我在页面中具有此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代码,以将项目中的内容附加到当前项目中,并替换寻呼机和键中的内容。到目前为止,我已经知道了,AJAX请求返回的是data
:
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>\"));
解决方法
我会尝试使用更好的通信方法,例如JSON或XML。仅此一项就可以使整个ajax请求更高效。想法是您可以将返回的append1追加到适当的位置,而无需返回任何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文档,那里有很多巧妙的技巧/演示。
, var feeds = document.getElementById(\“ feeds \”);
var feeddivs = feeds.getElementsByTagName(\“ div \”);
var len = feeddivs.length;
对于(var i = 0; i
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。