Javascript 为什么jQuery会提高效率?
对于ajax结果处理程序:Javascript 为什么jQuery会提高效率?,javascript,jquery,Javascript,Jquery,对于ajax结果处理程序: $('.update-flight-status').on('click', function() { $.getJSON('/status', function(result) { var statusElements = $.map(result, function(status, index) { var listItem = $('<li></li>'); $('<h3>'+status.
$('.update-flight-status').on('click', function() {
$.getJSON('/status', function(result) {
var statusElements = $.map(result, function(status, index) {
var listItem = $('<li></li>');
$('<h3>'+status.name+'</h3>').appendTo(listItem);
$('<p>'+status.status+'</p>').appendTo(listItem);
return listItem;
});
$('.status-list').html(statusElements); });
$('update flight status')。在('click',function()上{
$.getJSON('/status',函数(结果){
var statusElements=$.map(结果、函数(状态、索引){
var listItem=$(“”);
$(''+状态.名称+'').appendTo(列表项);
$(“”+status.status+”).appendTo(列表项);
返回列表项;
});
$('.status list').html(statusElements);});
及
$('.update-flight-status').on('click', function() {
$.getJSON('/status', function(result) {
var statusElements = $.map(result, function(status, index) {
var listItem = $('<li></li>');
$('<h3>'+status.name+'</h3>').appendTo(listItem);
$('<p>'+status.status+'</p>').appendTo(listItem);
return listItem;
});
$('.status-list').detach()
.html(statusElements)
.appendTo('.status');
});
});
$('update flight status')。在('click',function()上{
$.getJSON('/status',函数(结果){
var statusElements=$.map(结果、函数(状态、索引){
var listItem=$(“”);
$(''+状态.名称+'').appendTo(列表项);
$(“”+status.status+”).appendTo(列表项);
返回列表项;
});
$('.status list').detach()
.html(状态元素)
.appendTo(“.status”);
});
});
为什么使用“分离”的第二个示例比第一个示例更有效?仅当您特别需要移动元素位置时,分离才有用且有效,或者当一次只能看到一个元素时,阻止渲染1000个项目
您的示例没有使分离看起来有效,它看起来好像元素从一开始就被错误地定位了。jquery
detach
与remove
相同,只是它通过数据
或事件处理程序将特定于jquery的分配保留到该节点。当您计划重新设置时,此方法非常方便将节点连接到DOM中的另一个点
在第一个版本中,您确实无法判断状态列表
是否是状态
的子级,但在任何情况下,您都不会删除节点,因此数据、事件处理程序、分配的类等内容都会保留下来
在第二个版本中,从DOM中删除状态列表
,然后对其进行修改,然后重新附加我想说它实际上比第一种情况慢,因为第一种情况只是修改HTML内容,而不需要分离/重新连接任何内容
detach
可以提高效率的情况是,如果您删除该节点,并且该节点已经进行了大量定制,添加了类、数据等……然后将其重新连接到其他位置,而不是删除节点、重新创建节点、重新分配所有内容等。@FelixKling我在codeschool.com上做了一个教程