草庐IT

NT-DOM-NV

全部标签

javascript - AngularJS - 为什么在 Controller 中操作 DOM 是一件坏事?

DOM操作不应该在AngularJSController中执行是常识,但是很难找到为什么这是一件坏事。所有消息来源都说它很难测试,因为Controller应该用于指令之间的通信,但未能用代码说明为什么这是一件坏事。根据我的理解,我认为Controller与指令不同,它不与任何特定的HTML相关联,因此Controller所做的所有DOM修改很可能会失败。这肯定会使开发和测试复杂化。在子指令的链接函数之前执行的指令中的Controller也会失败,因为Controller可能不知道子指令的实际HTML是什么。链接在Controller函数之后执行,可能会修改HTML结构。我希望我在这里说

javascript - 将数百个 DOM 元素动态插入页面同时保持高性能的最佳方式

我有一个Web应用程序,我们可以在其中将数百个元素插入到DOM中本质上,我在做$('#some_element').html('');反复。在某些情况下,我可能需要执行$('#some_element').appendTo('morehtml');根据以前的经验,使用追加或设置元素的innerHTML插入html文本很慢。我听说您可以通过首先将元素放在DOM片段中然后将其位置移动到您想要的元素内部来提高性能。性能是关键。你们对最大化性能有什么提示或建议吗?我可以做些什么来加快速度?编辑:如评论中所述:应用程序涉及各种数据的实时流,因此需要能够不断添加新的DOM元素来表示新数据。(这也可

javascript - 如何获取触发 ng-change 的 DOM 元素?

我正在使用angularJS。我有几个我页面上的元素,每个元素都有自己的ng-change,例如:我希望能够确定从updateUserData中更新了哪个DOM元素函数,无需手动将其指定为每个ng-change的参数属性。有没有event,或caller或我可以在updateUserData的上下文中使用的类似内容?希望像ng-change="updateUserData(caller)"这样的东西 最佳答案 没有(简单的)方法可以通过设计来做到这一点。AngularController应该与DOM完全分离,因此如果您发现自己需要在

javascript - 如何掌握文档对象模型(DOM)?

一段时间以来一直在使用Prototype和jQuery等Javascript库进行开发。虽然使用这些库是一件好事,但缺点是使用这些库可能无助于理解幕后发生的事情。那么如何掌握DOM呢?在使用Javascript库时了解DOM会更有帮助吗?在不使用库的情况下,了解DOM有什么好处?非常感谢 最佳答案 那么如何掌握DOM?这几乎和说“一个人如何掌握编程?”一样笼统,但我会试一试。练习是关键。你不能只读几本书就变得很擅长。您需要实践和经验才能知道当您做不同的事情时到底发生了什么,以及不同的浏览器如何解释您正在做的事情。当然,您可以做一些事

javascript - 在 http 和 https 之间共享 dom 存储

我想要一种在客户端存储信息的方法,我的网站的SSL和非SSL版本都可以访问这些信息。localStorage是一个很棒的机制,但它只能通过当前协议(protocol)访问。我希望能够通过javascript在我网站的非ssl(http)部分存储一条信息,并在我网站的SSL(https)部分访问它。有谁知道在ssl和非ssl页面之间共享存储的客户端信息的好方法吗?我知道我总是可以默认使用cookie..但我讨厌必须为每个请求来回发送cookie的想法。 最佳答案 根据导致此答案的评论编译;我欢迎@jeremyisawesome编辑他的

javascript - 如何在 meteor 准备好 DOM 后执行辅助函数

我有一个的列表如下所示,它使用Meteor.startup填充了find()。然后我得到这些的所有数据属性使用data()并将其放入一个对象中并尝试返回/console.log它以便我可以查看它是否有效。但我得到null因此。Meteor.startup(function(){Template.messages.lists=function(){varallitems=lists.find();returnallitems;};varmap;map=newGMaps({div:'#map_canvas',lat:-12.043333,lng:-77.028333});varlat=ma

javascript - 将 jQuery 元素转换为常规 dom 元素

一个普通的dom元素是这样的:document.getElementById('a')或document.createElement('div')但jQuery以另一种格式返回元素,因此例如我想将$('#a')返回的内容转换为与返回的相同结果document.getElementById('a')这可以使用jQuery吗?谢谢 最佳答案 您可以使用.get(0)或[0]来引用DOM元素,例如$('#foo')[0]假设只有一个。 关于javascript-将jQuery元素转换为常规do

javascript - JQuery 附加的 JS DOM 等价物

JQuery的标准DOM是什么element.append("")? 最佳答案 我认为你必须扩展innerHTML属性才能做到这一点element[0].innerHTML+="";一些解释:[0]需要因为element是一个集合+=扩展innerHTML并且不覆盖关闭需要,因为某些浏览器只允许将有效的html设置为innerHTML提示:正如@dontdownvoteme提到的,这当然只会针对集合element的第一个节点。.但由于jQuery的性质,集合可以包含更多条目 关于java

javascript - Shadow DOM 中的 Angular 1.x ngAnimate 不注册动画时间或添加进入/离开类

我已经尝试了几个小时的解决方案-SO中的所有重复项似乎都不适合我因为他们大多建议尝试不同版本的ng-animate/angular或在相关类中添加过渡/动画,以便ngAnimate可以正确处理它们的时间。我的问题是所有这一切都有效,而且我的所有属性都在正确的位置-但现在我正在迁移我们的Chrome扩展程序以在ShadowDOM封装下工作。注意事项:ShadowDOM可能是罪魁祸首,但我不确定为什么或如何修复它。它也可能无关紧要或只在实际问题中发挥次要作用(这可能是由于ShadowDOM+angular中的DOM处理不当)我在扩展注入(inject)的生命周期后期手动引导我的应用程序,因

javascript - 你能检测到 dom 节点的样式何时设置为 'auto' 吗?

以CSS为例:.thing{height:auto}和HTML:Thequickbrownfoxjumpsoveralazydog.是否可以检测到.thing的高度设置为“auto”?以下方法返回值:jQuery('.thing').height()//njQuery('.thing').css('height')//'npx'getComputedStyle(node).height//'npx'是否有任何方法可以告诉我浏览器正在从“自动”计算这些值? 最佳答案 是的,有一种方法,但这不是一种有趣的方法。你要做的是:遍历所有样式标