我知道ng-show
和ng-hid
会影响元素上的类集,并且ng-if
控制元素是否呈现为DOM的一部分。
是否有关于选择ng(如果)而不是ng(显示)或ng(隐藏)的指南?
从我的经验来看:
1)如果您的页面有一个使用ng-if/ng-show显示/隐藏某些内容的切换,ng-if会导致更多的浏览器延迟(较慢)。例如:如果您有一个用于在两个视图之间切换的按钮,ng-show似乎更快。
2) 当范围的计算结果为真/假时,ng if将创建/销毁范围。如果有一个控制器连接到ng If,那么每当ng If的计算结果为true时,就会执行该控制器代码。如果您使用的是ng show,那么控制器代码只执行一次。因此,如果您有一个在多个视图之间切换的按钮,那么使用ng if和ng show将在编写控制器代码的方式上产生巨大的差异。
请参见此处的代码笔,该代码笔演示了ng if/ng show在DOM方面的工作方式。
@马尔科沃克萨诺维奇很好地回答了这个问题。但我从另一个角度来看:我总是使用ng if,并将这些元素从DOM中取出,除非:
Angular写得很好。考虑到它的功能,它很快。但它所做的是一系列的魔术,使困难的事情(如双向数据绑定)看起来非常简单。使所有这些事情看起来简单需要一些性能开销。您可能会惊讶地发现,在一大块DOM上,一个setter函数在$摘要周期中被求值了数百次或数千次,甚至没有人看到它。然后你意识到你有几十个或数百个不可见的元素都在做同样的事情。。。
台式机可能确实足够强大,可以让大多数JS执行速度问题变得毫无意义。但是,如果你是为移动设备开发的,只要有可能,就可以使用ng if。JS速度在移动处理器上仍然很重要。使用ng if是以非常非常低的成本获得潜在重要优化的非常简单的方法。
取决于您的用例,但要总结差异:
不在DOM中的元素对性能的影响较小,与使用ng show/ng hide相比,使用ng if时,web应用程序的速度可能更快。根据我的经验,这种差别可以忽略不计。当同时使用ng show/ng hide
和ng if
时,可以制作动画,在角度文档中给出了这两种动画的示例。
最终,您需要回答的问题是是否可以从DOM中删除元素?
我知道有一个插件Java9支持Oxygen,但是有人知道Eclipse何时会在本地支持Java9吗?我查看了项目网站和博客(行星月食),但找不到任何信息。
问题内容: 根据Jython的文档: Jython是Java平台的Python语言的实现。Jython 2.5实现与CPython 2.5相同的语言,以及几乎所有的Core Python标准库模块。(CPython是Python语言的C实现。)Jython 2.5使用与CPython相同的回归测试套件,但做了一些小的修改。 有计划支持Python 3吗?如果是这样,它计划何时发布? 问题答案: J
问题内容: 我有一个使用restify模块创建的REST api,我想允许跨域资源共享。最好的方法是什么? 问题答案: 您必须将服务器设置为设置跨源标头。不知道是否有内置的使用功能,所以我写了自己的功能。 我是从本教程中找到的。http://backbonetutorials.com/nodejs-restify-mongodb- mongoose/
我的Android应用程序已经有了一个运行正常的Exoplayer实现,我需要知道Exoplayer是否支持在HDCP中播放短跑视频(以及它是如何工作的)。演示应用程序有一些具有“HDCP功能”的示例,但我在代码库中找不到任何与它如何处理这一问题有关的内容(DASH manifest文件本身是否指定了HDCP功能?)。
对于Requests,如果你有问题或者建议,可以通过下面几种方法得到支持: StackOverflow 如果你的问题不包含敏感或私有信息,或者你能将这些信息匿名化,那你就可以在 StackOverflow 上使用 python-requests 标签提问。 发送推文 如果你的问题在140个字符内描述,欢迎在 twitter 上发送推文至 @kennethreitz, @sigmavirus24,
我在Unity中有项目,使用Mapbox, Mapbox包含以下支持库:support-v4-25.1.0.aar 此库以.aar文件的形式提供,而不是作为gradle命令 尝试构建项目时,我收到此错误: 无法确定任务的依赖项:启动程序:lintVitalRelease。< br >无法解析配置的所有项目:launcher:debuguntimeclass path。< br >无法转换支持-v4