草庐IT

虚拟DOM

全部标签

dom 节点太多的 Javascript 性能问题?

我目前正在调试一个ajax聊天,它不断地用DOM元素填充页面。如果你的聊天持续了大约3个小时,你最终会知道有多少DOM节点。与极端DOM使用相关的问题是什么?UI是否有可能变得完全无响应(尤其是在InternetExplorer中)?(与此问题相关的当然是解决方案,如果除了手动垃圾收集和删除dom节点之外还有其他解决方案。) 最佳答案 大多数现代浏览器应该能够很好地处理巨大的DOM树。而“大多数”通常不包括IE。是的,您的浏览器可能会变得无响应(因为它需要太多RAM->交换)或者因为它的渲染器不堪重负。标准解决方案是删除元素,比如在

javascript - jQuery UI 可拖动不适用于新创建的 DOM 元素

我有一些可使用jQueryUI拖动的DOM元素。一切正常,但当我使用jQuery创建一些元素时,它们根本不可拖动。即$('div.draggable').draggable();//Existingelement,itworks:)$('p.draggable').draggable();//Newlycreatedparagraphwithsameclassname,itdoesntworkatall:(提前致谢!!!我正在尝试这个:$(document).ready(function(){$('body').append('NewlyCreatedParagraph');$('p.

javascript - 使用 meteor 模板助手获取 DOM 元素

例如我的html是Click在meteor模板助手中,我希望能够选择anchor标记。Template.atest.route=function(){console.log(this.data-test);};我不确定这是否可以完成,但可以肯定的是,通过我尝试过的任何方法都无法完成。我知道有一种方法可以在模板实例中传递参数,但我不想那样。我希望能够选择模板实例所在的anchor标记并对其进行处理。感谢我能得到的任何帮助。 最佳答案 不是在helpers中,而是在rendered回调中你可以这样做:Template.atest.ren

Javascript 有效地从 JSON 构建表并将其添加到 DOM

我有一个来自服务器的JSON数组,该数组包含200个对象,每个对象包含另外10个我想以表格格式显示的对象。起初我正在创建一个对于每次迭代并使用jQuery附加一个从数组值构建到.这在Chrome中花费了大约30秒,在IE8中花费了19秒。这花费的时间太长了所以我尝试切换到Array.join()。方法,我会将构成整个表的每个字符串存储在一个数组中,最后做$('#myTable').append(textToAppend).这实际上比我的第一个版本差了大约5秒。我想将其缩短到10秒左右。我有机会吗?如果没有,我将一次添加一行,但我宁愿不这样做。for(allIndex=0;allInde

javascript - 如果元素存在于 DOM 中或者它是虚拟的(刚刚由 createElement 创建),如何使用 javascript 查找

我正在寻找一种方法来查找是否已将javascript中引用的元素插入到文档中。让我们用下面的代码来说明一个案例:varelem=document.createElement('div');//Elementhasnotbeeninsertedinthedocument,i.e.notpresentdocument.getElementByTagName('body')[0].appendChild(elem);//ElementcannowbefoundintheDOMtreeJquery有:visible选择器,但当我需要查找文档中某处放置的不可见元素时,它不会给出准确的结果。

javascript - 从 DOM 中移除 HTMLCollection 元素

我有一个段落元素的集合。有些是空的,有些只包含空格,而有些则有内容:Pellentesquehabitantmorbitristiquesenectusetnetusetmalesuadafamesacturpisegestas.Vestibulumtortorquam,feugiatvitae,ultricieseget,temporsitamet,ante.Doneceuliberositametquamegestassemper.Aeneanultriciesmivitaeest.Maurisplacerateleifendleo.  我正在使用getElem

javascript - 如何通过另一个 DOM 触发 INPUT FILE 事件 REACTJS

我有一个INPUTBUTTON和INPUTFILE,我想点击BUTTON,它会触发INPUTFILEREACTJS中的事件。React.createElement('input',{type:'file',name:'myfile'})然后是按钮React.createElement('a',{onClick:this.doClick},'SelectFile')那么当我们点击AHREF时,如何定义并触发INPUTFILE的点击事件呢?非常感谢您的帮助。:-) 最佳答案 更新:2021年9月18日注意:在NextJS上,我遇到的是o

javascript - Ember.js - "Cannot perform operations on a Metamorph that is not in the DOM"由模板引起

我一直遇到Ember.js抛出错误的问题:UncaughtError:CannotperformoperationsonaMetamorphthatisnotintheDOM.我找到了thesetwoSO问题,这两个问题都涉及直接操作DOM,而在我的应用程序中并非如此。搜索错误消息还会返回与相同类型的直接DOM操作相关的许多Github问题。 最佳答案 直到我偶然发现thisissue,我才感到茫然。在Github上来自search与错误消息完全无关。基本上,错误归结为包含在HTML注释中的Handlebars表达式。用代码说起来可

javascript - jQuery 在 Internet Explorer 8 中不起作用 ("this"返回 DOM 而不是 jq)

我遇到了一个奇怪的问题,找不到任何解决方案。jQuery(任何版本,从1.7.*到1.10.*)在InternetExplorer8中失败。所有插件(来自Bootstrap)和jQuery库都出现错误:Objectdoesn'tsupportthispropertyormethodScreenshotfromdebugger:挖掘插件代码,像这样:$.fn.alert=function(option){returnthis.each(function(){//...})}显示问题:this关键字指向HTMLDomObject,而不是jQuery对象。什么会导致如此奇怪的错误?仅Inte

javascript - 如何在 x3dom 中更改 3d 文本的斜 Angular 大小?

如何在x3dom中更改3d文本的斜Angular大小?现在我有这样的代码是否有可用的示例代码? 最佳答案 看起来没有任何单独使用X3Dom的倾斜文本的直接示例。three.js似乎是唯一的webgl解决方案,我知道,您可以在其中轻松更改3D文本的斜Angular。根据您最近的问题,您似乎已经找到了这一点。这里有一些关于three.js的其他好的资源/示例。很好的介绍。幻灯片:http://fhtr.org/BasicsOfThreeJShttp://stemkoski.github.com/Three.js/http://mrdoo