账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    当页面中涉及到大量dom操作时有什么比较好的方法?
    38
    0

    最近做的一个监控项目大致场景如下:前端通过websocket监听后端推送的消息来更新页面,更新页面时涉及到大量的dom更新,问题就来了:
    1,需要更新的页面数据比较多,而且数据都是那种枚举的、没有规律的,现在面临的一个最直接的问题就是代码写起来很麻烦,比如:

    const allinfoDataMap = {
        name: document.getElementById('name'),
        age: document.getElementById('age'),
        gender: document.getElementById('gender'),
        address: document.getElementById('address'),
        //... 省略,下面还有好多
    };

    然后ajax拿到数据后,遍历allinfoDataMap,来更新对应的dom。
    我就想问下,除了这种方式还有没有其他比较好的方式,最好是通过原生的js来实现。

    2,页面的更新是比较频繁的更新,因为后端在不断的推送消息,所以频繁的更新大量dom是不是会带来性能这方面的问题?如果会,那么该怎么解决这个问题?
    这个问题现在可能问的有点儿早(毕竟功能还没做完整,也没测试),但早点儿考虑,先给打个预防针,以免后续问题来了措手不及。

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 在处理大量DOM操作时,有几种常见的方法:

      1. 使用jQuery的$.get()$.post()方法:这些方法可以在JavaScript中直接操作DOM元素,而不需要使用DOM操作库。例如,可以使用$.get()方法获取元素的文本内容,使用$.post()方法发送POST请求。

      ```javascript var text = $.get('http://example.com/api/data'); var data = JSON.parse(text);

      $.post('http://example.com/api/submit', data, function(response) { console.log(response); }); ```

      1. 使用Node.js的DOM API:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它提供了一个强大的DOM API,可以直接操作DOM。例如,可以使用document.querySelector()方法获取元素,使用document.createTextNode()方法创建文本,使用document.getElementsByTagName()方法获取所有元素。

      javascript var element = document.querySelector('my-element'); var text = element.createTextNode('Hello, World!');

      1. 使用React或Vue等JavaScript库:这些库提供了一种面向对象的方式来处理DOM操作。例如,React提供了一个虚拟DOM技术,可以在不更新DOM的情况下改变组件的状态。Vue提供了一个虚拟DOM技术,可以在不更新DOM的情况下改变视图。

      javascript class MyComponent extends React.Component { render() { return <div>Hello, World!</div>; } }

      以上是一些常见的方法,具体使用哪种方法取决于你的具体需求和项目规模。

    更多回答
    扫一扫访问手机版