首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用新数据重绘jstree树?

基础概念

JSTree 是一个基于 jQuery 的插件,用于创建可交互的树形结构。它支持多种数据格式,如 JSON,并且可以轻松地与各种后端服务集成。JSTree 提供了丰富的 API 来操作树形结构,包括添加、删除、重命名节点等。

相关优势

  1. 灵活性:支持多种数据格式和配置选项。
  2. 交互性:提供丰富的用户交互功能,如拖放、复选框、编辑等。
  3. 性能:优化了渲染和操作性能,适用于大型树形结构。
  4. 可扩展性:可以通过插件和回调函数进行扩展。

类型

JSTree 有几种不同的模式:

  • 标准模式:基本的树形结构。
  • 复选框模式:节点可以勾选,支持多选。
  • 编辑模式:节点可以被编辑。
  • 懒加载模式:节点内容可以动态加载。

应用场景

  • 文件系统管理
  • 组织结构图
  • 菜单导航
  • 数据分类展示

如何用新数据重绘 JSTree 树

当你需要用新的数据重绘 JSTree 树时,可以使用 refresh 方法。以下是一个示例代码:

代码语言:txt
复制
// 假设你已经初始化了一个 JSTree 实例
$('#your-tree').jstree({
    'core': {
        'data': [] // 初始数据为空
    }
});

// 新的数据
var newData = [
    { "id": "1", "parent": "#", "text": "Root node" },
    { "id": "2", "parent": "1", "text": "Child node 1" },
    { "id": "3", "parent": "1", "text": "Child node 2" }
];

// 使用新数据重绘树
$('#your-tree').jstree(true).settings.core.data = newData;
$('#your-tree').jstree(true).refresh();

参考链接

遇到的问题及解决方法

问题:重绘树时节点没有正确更新

原因:可能是由于数据格式不正确或数据更新时机不对。

解决方法

  1. 确保新数据的格式正确,符合 JSTree 的要求。
  2. 在更新数据前,确保 JSTree 实例已经完全初始化。
  3. 使用 destroy 方法先销毁当前的 JSTree 实例,然后再重新初始化。
代码语言:txt
复制
$('#your-tree').jstree(true).destroy();
$('#your-tree').jstree({
    'core': {
        'data': newData
    }
});

通过以上步骤,你应该能够成功用新数据重绘 JSTree 树。如果问题仍然存在,请检查控制台是否有错误信息,并根据错误信息进行调试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

左侧的列表下面小节介绍,右边就是我们一般的数据查询显示区域,分为查询内容和数据列表两部分,查询内容,我们一般放在一个表单里面进行处理,用户触发查询的时候,我们对事件进行处理,并从MVC后台的控制器里面请求对应的数据返回给页面前端...菜单页面的查询代码如下所示。...2、插件JSTree 前面小节也提高的列表的展示,在一般情况下,如果数据有层次的,那么通过列表展示,可以很直观的显示出它们的结构,因此树列表在很多情况下,可以辅助我们对数据的分类展示。...或者对于字典数据或者省份城市的数据,一样更可以通过列表进行展示 ? ?...//以指定的Json数据,初始化JStree控件 //treeName为div名称,url为数据源地址,checkbox为是否显示复选框,loadedfunction为加载完毕的回调函数 function

2.4K50

前端性能优化 | 回流与

(repaint):当页面元素的样式(颜色、背景等)发生变,但并不影响其布局时,浏览器只需要重新绘制(repaint)这些元素,而无需重新计算元素的布局,这个过程称为重。...所以在页面初始渲染阶段,回流不可避免的触发,可以理解成页面一开始是空白的元素,后面添加了的元素使页面布局发生改变当我们对 DOM 的修改引发了 DOM 几何尺寸的变化(比如修改元素的宽、高或隐藏元素等...在触发回流的时候,由于浏览器染页面是基于流式布局的,所以当触发回流时,会导致周围的 DOM 元素重新排列,它的影响范围有两种:全局范围: 从根节点开始,对整个渲染进行重新布局局部范围: 对渲染的某部分或者一个渲染对象进行重新布局的触发条件触发条件...使用节流和防抖技术:对于一些频繁触发的事件(scroll、resize),可以使用节流和防抖技术来控制事件的触发频率,减少回流和。...我们学习到了回流和的定义和区别,以及触发回流和的常见操作。同时,我们提供了一些减少回流和的优化措施,使用transform属性进行动画、使用position属性进行定位、缓存布局信息等。

1.2K20
  • 【前端性能优化】深入解析和回流,构建高性能Web界面

    构造渲染:基于的布局信息,浏览器更新或重新构造渲染(包含DOM元素和CSS样式的组合结构,用于计算最终的像素颜色值)。...(Repaint) 则是指当页面中元素的外观(颜色、背景、边框样式等)发生变化,但不涉及元素尺寸或位置的调整,导致的元素视觉表现更新。...浏览器在这个过程中的主要操作包括: 样式计算:虽然不涉及布局,但浏览器仍需计算元素的样式信息。 绘制更新:直接在现有布局的基础上,使用的样式信息元素,而不必重新计算布局。...背景样式变化:修改元素的背景图片或背景图像的大小、重复方式等,如果这些变化不影响布局,就只会触发。 边框样式调整:改变元素边框的样式、宽度或颜色,只要这些改动不引发布局变化,就属于范畴。...批量处理DOM操作:将多个DOM修改操作放在一个批次中完成,减少DOM和回流次数。

    12310

    HTML中的与回流

    在认识和回流之前,我们先认识一下一个页面加载的时候,会发生什么?   页面加载时,生成一个DOM,DOM Tree里包含了构成页面所有的标签。...(Repaint):是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的属性重新绘制,使元素呈现的外观。...不一定需要重排(比如颜色的改变),重排必然导致(比如改变网页位置)。...优化: 和重排对我们的浏览器性能有一定的个影响,浏览器会维护1个队列,把所有会引起重排,的操作放入这个队列,等队列中的操作到一定数量或者到了一定时间间隔,浏览器就会flush队列,进行一批处理,...这样多次重排,变成一次重排 减少 reflow/repaint: (1)不要一条一条地修改 DOM 的样式。

    1.4K20

    浏览器的重排

    样式或节点的更改,以及对布局信息的访问等,都有可能导致重排和。而重排和的过程在主线程中进行,这意味着不合理的重排会导致渲染卡顿,用户交互滞后等性能问题。 知识点深入 1....重排和,本质上指的就是分别重新触发 Layout 和 Paint 的过程,且重排必定导致。 引起重排/的常见操作 外观有变化时,会导致。...文档中元素之间的关系。 外部信息(视口大小等)。 获取布局信息时,会导致重排。相关的方法属性 offsetTop getComputedStyle 等。 2....在交互阶段,页面更新(一般是通过执行 JavaScript 来触发)通常会触发重排和。为了提升浏览器渲染效率,应当尽可能减少重排,降低浏览器渲染耗费的时间,尽快将内容渲染到屏幕上。...参考资料 渲染构建、布局及绘制 避免大型、复杂的布局和布局抖动 CSS 属性触发布局、绘制及合成的数据 What forces layout / reflow

    1.1K00

    浏览器请求与渲染全过程

    6.GPU绘制() 布局计算完成后,浏览器将渲染转换为实际的像素,这个过程称为重(repaint)。发生在GPU上,以提高效率和性能。...增加、删除可见的DOM元素: 当DOM发生变化,添加或删除可见元素时,浏览器需要重新计算渲染中受影响部分的布局,以适应的DOM结构。这通常会导致回流发生。... (Repainting) 是指当元素的视觉属性发生变化但不影响布局(即几何信息不变)时,浏览器对元素的视觉表现进行更新的过程。...以下是一些触发的常见情况: 非几何信息被修改: 修改元素的颜色(背景色、文字颜色)。 更改元素的边框样式或颜色。 更新元素的背景图像。 改变元素的透明度(不涉及尺寸变化)。...与回流不同,不会重新计算元素的布局位置和大小,只更新其视觉表现。 所以通常会比回流更快,因为它不需要重新布局整个页面或部分页面。

    19110

    回流和

    : 当render中的一部分或者全部因为大小边距等问题发生改变而需要重建的过程叫做回流 repaint: 当元素的一部分属性发生变化,外观背景色不会引起布局变化而需要重新渲染的过程叫做...回流一定会引发 但是 不一定引发回流 引发回流的情况 : 首当其冲自然是dom树结构变化,比如你删除或者添加某个node....浏览器窗口发生变化-resize事件发生时 var s = document.body.style; s.padding = "2px"; // 回流+ s.border = "1px solid...red"; // 再一次 回流+ s.color = "blue"; // 再一次 s.backgroundColor = "#ccc"; // 再一次 s.fontSize =..."14px"; // 再一次 回流+ // 添加node,再一次 回流+ document.body.appendChild(document.createTextNode('abc!'))

    87410

    理解浏览器重和回流

    今天带大家理解浏览器的和回流。 浏览器渲染过程 我们先简单了解一些浏览器是怎么渲染页面的。...渲染生成后,先是会计算 “布局”,然后分层,最后进行栅格化(渲染)。 (repaint) ,就是重新绘制。发生了不改变元素物理信息的情况下只会进行。...不会改变页面的布局,只是对局部区域重新渲染,一般来说不会导致严重的性能问题。 重排(reflow) 重排,就是重新排布。...下面是维基百科的页面重排的可视化展示: 如何避免重排 减少 DOM 操作。...但如果在这过程中访问了布局相关信息(比如 scrollHeight、getBoundingClientRect)时,就会强制进行渲染去获取最新布局数据; 将经常变化的元素放到的层。

    52521

    【春节日更】重排 与 的知识点

    面试中,经常会问到: “重排与的概念,什么情况触发,如何优化等” 本文就来解答下,上面的问题 01 渲染过程 首先,我们来了解下浏览器的渲染过程 浏览器生成渲染的过程 02 重排与概念 重排...(repaint):是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的属性重新绘制,使元素呈现的外观。...不一定需要重排,重排必然会导致 03 什么情况会触发 触发重排的条件:任何页面布局和几何属性的改变都会触发重排。...: 发生在元素的可见的外观被改变,但并没有影响到布局的时候。...比如,仅修改DOM元素的字体颜色(只有Repaint,因为不需要调整布局) 04 优化 重排的代价:耗时,导致浏览器卡慢。 所以,需要优化来减少重排的发生 css 优化 1.

    63520

    什么是回流与 (Reflow & Repaint)

    Contents 1 写在前面 2 回流(Reflow) 3 (Repaint) 4 影响 5 避免与回流 6 总结 写在前面 在讨论今天的主角之前,我们要先了解一下浏览器的渲染机制。...现代浏览器会对频繁的回流或操作进行优化,浏览器会维护一个队列,当我们页面发生回流或时,有时候并不是立即执行,而是先放入维护的队列中,到达一定时间后统一去进行绘制 当你访问以下属性或方法时,浏览器会立刻清空队列...scrollHeight、scrollTop、scrollLeft width、height getComputedStyle() getBoundingClientRect() 所以当我们需要使用如上api获取数据时...,我们要注重渲染时机以及取值时机 避免与回流 避免使用 table 布局。...因为在display属性为none的元素上进行的DOM操作不会引发回流和。 避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。

    87110

    用户输入网址到页面返回都发生了什么?

    这个过程可能会受到JavaScript的影响,比如遇到非异步的JS代码,会暂停DOM和CSSOM的构建,优先执行JS,以为JS代码可能会修改或者访问DOM和CSSOM重排和渲染是动态构建的,所以...渲染的改动就会造成页面的重排或者1、重排当我们的操作引发了 DOM 中几何尺寸的变化(改变元素的大小、位置、布局方式等),这时渲染里有改动的节点和它影响的节点都要重新计算。...2、当对 DOM 的修改导致了样式的变化、但未影响其几何属性(比如修改颜色、背景色)时,浏览器不需重新计算元素的几何属性、直接为该元素绘制的样式(会跳过重排环节),这个过程叫做。...colorbackgroundvisibilitybox-shadowborder-radius当触发重排时,一定会触发,但是不一定会引发重排。...这样就会让多次的回流、变成一次回流。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    24000

    用户输入网址到页面返回都发生了什么?(全面分析)

    这个过程可能会受到JavaScript的影响,比如遇到非异步的JS代码,会暂停DOM和CSSOM的构建,优先执行JS,以为JS代码可能会修改或者访问DOM和CSSOM重排和=====渲染是动态构建的...渲染的改动就会造成页面的重排或者1、重排当我们的操作引发了 DOM 中几何尺寸的变化(改变元素的大小、位置、布局方式等),这时渲染里有改动的节点和它影响的节点都要重新计算。...2、当对 DOM 的修改导致了样式的变化、但未影响其几何属性(比如修改颜色、背景色)时,浏览器不需重新计算元素的几何属性、直接为该元素绘制的样式(会跳过重排环节),这个过程叫做。...color background visibility box-shadow border-radius当触发重排时,一定会触发,但是不一定会引发重排。...这样就会让多次的回流、变成一次回流。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

    18910

    浏览器渲染之回流

    Painting ():根据渲染以及回流得到的几何信息,将 Render Tree 的每个像素渲染到屏幕上。...回流与的原理 webkit 将渲染中的元素成为渲染对象,每一个渲染对象都代表了一个矩形区域,通常对应相关节点的css框,包含宽度、高度和位置等几何信息。...什么是 通过构造渲染和回流阶段,知道了哪些节点是可见的,以及可见节点的样式和具体的几何信息(位置、大小),那么我们就可以将渲染的每个节点都转换为屏幕上的实际像素,这个过程就叫做。...在阶段,系统会遍历渲染,并调用渲染对象的 paint 方法,将渲染对象的内容显示在屏幕上。和布局一样,绘制也分为全局(绘制整个呈现)和增量两种。...避免使用 CSS 表达式/:calc。 使用性能更高的选择器,类选择器。同时可以选择性使用 BEM(块、元素、修饰符)规范。

    1.7K40

    十人九问,回流和重排怎么优化?

    节点的一些样式(背景色,边框颜色,文字颜色等)发生改变,只需要应用样式绘制这个元素就可以了; 发生机制: 颜色 visibility: hidden,元素还是占了位置的 2.重排是什么?...优化方案:减少"重排"和""的频率和成本,尽量少触发重新渲染。...(因为隐藏元素不在render内,因此修改隐藏元素不会触发回流) 4.将复杂的节点元素脱离文档流,降低回流成本 5.将CSS的引入文件放在文件头部,js引入文件放到尾部 6. css3硬件加速...因为在display属性为none的元素上进行的DOM操作不会引发回流和。 具有复杂动画的元素使用绝对定位,使它脱离文档流 比起考虑如何减少回流,我们更期望的是,根本不要回流。...Tree) 3.Layout(回流):根据生成的渲染,进行回流(Layout),得到节点的几何信息(位置,大小) 4.Painting():根据渲染以及回流得到的几何信息,得到节点的绝对像素

    14410

    【翻译】浏览器渲染Rendering那些事:repaint、reflowrelayout、restyle

    每个渲染节点都具有CSS盒子的属性,width、height、border、margin等; 最后,等待渲染构建完毕后,浏览器便开始将渲染节点一一绘制-paint到屏幕上。  ...屏幕的更新行为称作-repaint,或者redraw。 和回流的性能消耗是非常严重的,破坏用户体验,造成UI卡顿。...四、触发/回流的机制 改变任何影响构造渲染的行为都会触发,例如 增加、删除、更新DOM节点; 通过display:none隐藏节点会触发和回流,通过visibility:hidden隐藏只会触发...display:none将节点隐藏(此时出发一次回流和),然后对隐藏的节点进行100个操作(这些操作都会单独触发回流和),完毕后将节点的display改回原值(此时再次触发一次回流和)。...最后,我们复习一下几个术语: 渲染-DOM的虚拟部分; 渲染中的节点称为结构体或者盒子; 重新计算渲染的行为被Mozilla称为回流-reflow,被其他浏览器称为layout; 将重新计算后的渲染更新到屏幕的行为叫做

    1K60

    浏览器相关原理(面试题)详细总结二

    浏览器从网络或硬盘中获得HTML字节数据后会经过一个流程将字节解析为DOM,先将HTML的原始字节数据转换为文件指定编码的字符,然后浏览器会根据HTML规范来将字符串转换成各种令牌标签,html、body...文本时,会执行一个转换操作,将 CSS 文本转换为浏览器可以理解的styleSheets 创建布局,遍历 DOM 中的所有可见节点,并把这些节点加到布局中;而不可见的节点会被布局忽略掉, head...02 — 如何理解回流和?...:当我们对 DOM 的修改导致了样式的变化、却并未影响其几何属性(比如修改了颜色或背景色)时,浏览器不需重新计算元素的几何属性、直接为该元素绘制的样式(跳过了上图所示的回流环节)。...这个过程叫做。由此我们可以看出,不一定导致回流,回流一定会导致

    1K10

    与回流_html回流

    浏览器会根据元素的属性重新绘制, 使元素呈现的外观。不会带来重新布局,所以并不一定伴随回流。 需要注意的是:是以图层为单位,如果图层中某个元素需要,那么整个图层都需要。...回流 渲染对象在创建完成并添加到渲染时,并不包含位置和大小信息。...计算这些值的过程称为布局或回流 “”不一定需要”回流”,比如改变某个网页元素的颜色,就只会触发””,不会触发”回流”,因为布局没有改变。...“回流”大多数情况下会导致””,比如改变一个网页元素的位置,就会同时触发”回流”和””,因为布局改变了。...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.4K20

    浏览器原理

    然后将发送的标记,并回到“数据状态”。最后, 输入也会进行同样的处理。 1.3.2 构建过程 在创建解析器的同时也会创建 document 对象。...,再啰嗦一遍:尽量减少重排。...4.2 (repaint) repaint()遍历所有节点,检测节点的可见性、颜色、轮廓等可见的样式属性,然后根据检测的结果更新页面的响应部分。...当渲染中的一些元素需要更新一些不会改变元素不局的属性,比如只是影响元素的外观、风格、而不会影响布局的那些属性,这时候就只发生。当然,页面首次加载也是要一次的。...因此,元素的颜色改变后,只会对该元素进行。元素的位置改变后,只会对该元素及其子元素(可能还有同级元素)进行布局和。添加 DOM 节点后,会对该节点进行布局和

    2K21
    领券