Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我附加到数组时,Ractive.js是否会附加或重建所有?_Javascript_Jquery_Ractivejs - Fatal编程技术网

Javascript 当我附加到数组时,Ractive.js是否会附加或重建所有?

Javascript 当我附加到数组时,Ractive.js是否会附加或重建所有?,javascript,jquery,ractivejs,Javascript,Jquery,Ractivejs,模板 <script id='template' type='text/ractive'> <p>Hello, {{name}}!</p> {{#each items:num}} <li>#{{num}} {{items[num]}}</li> {{/each}} </script> ractivejs如何呈现附加元素?重建全部还是只附加一个新的dom元素?这一点很重要,因为此数组可能包

模板

<script id='template' type='text/ractive'>
    <p>Hello, {{name}}!</p>

    {{#each items:num}}
    <li>#{{num}} {{items[num]}}</li>
    {{/each}}

</script>

ractivejs如何呈现附加元素?重建全部还是只附加一个新的dom元素?这一点很重要,因为此数组可能包含数千个元素。全部重建非常缓慢,此数组将快速更新。

它将附加节点。您可以通过标记节点来实现这一点(请参见):

它还可以与splice()和checkout一起使用,以执行类似于shuffle的操作


如果您设置了一个新数组,Ractive在重用DOM节点方面也很聪明。您可以看到新数组如何重用DOM节点,因为只有文本节点内容需要更新

它将附加节点。您可以通过标记节点来实现这一点(请参见):

它还可以与splice()和checkout一起使用,以执行类似于shuffle的操作


如果您设置了一个新数组,Ractive在重用DOM节点方面也很聪明。您可以看到新数组如何重用DOM节点,因为只有文本节点内容需要更新

它将附加节点。您可以通过标记节点来实现这一点(请参见):

它还可以与splice()和checkout一起使用,以执行类似于shuffle的操作


如果您设置了一个新数组,Ractive在重用DOM节点方面也很聪明。您可以看到新数组如何重用DOM节点,因为只有文本节点内容需要更新

它将附加节点。您可以通过标记节点来实现这一点(请参见):

它还可以与splice()和checkout一起使用,以执行类似于shuffle的操作


如果您设置了一个新数组,Ractive在重用DOM节点方面也很聪明。您可以看到新数组如何重用DOM节点,因为只有文本节点内容需要更新

为什么不直接测试它?对不起,我很懒,现在只想睡觉。需要重新呈现一个新模板,但是附加,我想没有,但最好是用
为(j=0;j<10;j++){var start=moment().unix();进行itI测试(i=0;i<1000;i++{r.get(“items”).push(“Woman”);}console.log(矩().unix()-start)}
。似乎是append,但仍然不确定,随着element group的启动,浏览器可能会减慢它的速度。为什么不直接测试它呢?很抱歉,我很懒,现在只想睡觉。需要重新呈现一个新模板,但是append,我想不是,但最好是用
测试itI test for(j=0;j<10;j++){var start=moment().unix();for(i=0;i<1000;i++){r.get(“items”).push(“Woman”)}console.log(moment().unix()-start)}
。似乎是append,但仍然不确定,随着元素组的启动,浏览器可能会减慢它的速度。为什么不直接测试它呢?对不起,我很懒,现在只想睡觉。需要重新呈现一个新模板,但是append,我想不会,但最好是test itI test with
(j=0;j<10;j++){var start=moment().unix();for(i=0;i<1000;i++){r.get(“items”).push(“Woman”);}console.log(moment().unix()-start)}
。似乎是append,但仍然不确定,随着element group的启动,浏览器可能会减慢它的速度。为什么不直接测试它呢?很抱歉,我很懒,现在只想睡觉。需要重新呈现一个新模板,但是append,我想不是,但最好是用
测试itI test for(j=0;j<10;j++){var start=moment().unix();for(i=0;i<1000;i++){r.get(“items”).push(“Woman”);}console.log(moment().unix()-start)}
。它似乎是追加的,但仍然不能确定,在元素组打开时,浏览器可能会减慢它。
<script>
  window.r = new Ractive({
    // The `el` option can be a node, an ID, or a CSS selector.
    el: '.reactivejs',

    // We could pass in a string, but for the sake of convenience
    // we're passing the ID of the <script> tag above.
    template: '#template',

    // Here, we're passing in some initial data
    data: {name: 'world',items:["Food","Tools","Human"]}
  });
</script>
r.get("items").push("Somthing")
var length = 10;
var arr = new Array(length);
while(length--){
    arr[length] = 'item' + length;
}

var r = new Ractive({
    el: document.body,
    template: '#template',
    data: {
        list: arr
    }
})

var tags = document.querySelectorAll('p');

length = tags.length;
while(length--){
    tags[length].setAttribute('data-tagged', true);
}

r.push('list', 34);

console.log(document.querySelectorAll('p[data-tagged=true]').length, r.get('list.length'));